From 376f1dd01fae2273017ea87e8cce7da06b3f9c70 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 16 Apr 2024 09:27:23 +0800 Subject: [PATCH 01/33] remove unecessary test on Parquet --- .github/workflows/standalone-test-pushdown.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/standalone-test-pushdown.yml b/.github/workflows/standalone-test-pushdown.yml index 85464a55ba..c5a0ccb15a 100644 --- a/.github/workflows/standalone-test-pushdown.yml +++ b/.github/workflows/standalone-test-pushdown.yml @@ -26,7 +26,6 @@ jobs: "Redis", "Parquet", "PostgreSQL", - "Parquet", "FileSystem", "MongoDB", ] From fcf04677406be99fd9bcd2be22ce4df803c7aafd Mon Sep 17 00:00:00 2001 From: ZM <12236590+shinyano@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:20:53 +0800 Subject: [PATCH 02/33] refactor(datasource): use default meta config for mysql & postgresql (#444) * use default meta config for mysql * for tests * restore tests * use props file for pg * restore tests * remove unused file * restore mysql test config --------- Co-authored-by: Yuqing Zhu --- dataSource/relational/pom.xml | 5 + .../iginx/relational/RelationalStorage.java | 54 ++++---- .../transformer/JDBCDataTypeTransformer.java | 2 +- .../iginx/relational/meta/JDBCMeta.java | 69 +++++---- .../iginx/relational/meta/PostgreSQLMeta.java | 131 ------------------ .../iginx/relational/tools/Constants.java | 6 +- .../postgresql-meta-template.properties | 70 ++++++++++ .../mysql/MySQLCapacityExpansionIT.java | 3 +- test/src/test/resources/testConfig.properties | 1 + 9 files changed, 151 insertions(+), 190 deletions(-) delete mode 100644 dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/PostgreSQLMeta.java create mode 100644 dataSource/relational/src/main/resources/postgresql-meta-template.properties diff --git a/dataSource/relational/pom.xml b/dataSource/relational/pom.xml index 21d4a6b6ec..5e1514995c 100644 --- a/dataSource/relational/pom.xml +++ b/dataSource/relational/pom.xml @@ -56,6 +56,11 @@ + + + src/main/resources + + org.apache.maven.plugins diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java index 9162dc39a7..a1f4762f82 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java @@ -18,17 +18,7 @@ package cn.edu.tsinghua.iginx.relational; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.SEPARATOR; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.ADD_COLUMN_STATEMENT; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.BATCH_SIZE; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.CREATE_DATABASE_STATEMENT; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.DATABASE_PREFIX; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.DROP_COLUMN_STATEMENT; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.KEY_NAME; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.PASSWORD; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.QUERY_STATEMENT_WITHOUT_KEYNAME; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.TAGKV_SEPARATOR; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.USERNAME; -import static cn.edu.tsinghua.iginx.relational.tools.Constants.classMap; +import static cn.edu.tsinghua.iginx.relational.tools.Constants.*; import static cn.edu.tsinghua.iginx.relational.tools.TagKVUtils.splitFullName; import static cn.edu.tsinghua.iginx.relational.tools.TagKVUtils.toFullName; @@ -80,6 +70,7 @@ import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.pool.HikariPool; import java.io.IOException; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.sql.Connection; import java.sql.DatabaseMetaData; @@ -87,13 +78,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -220,18 +205,33 @@ public RelationalStorage(StorageEngineMeta meta) throws StorageInitializationExc private void buildRelationalMeta() throws RelationalTaskExecuteFailureException { String engineName = meta.getExtraParams().get("engine"); - if (classMap.containsKey(engineName)) { - try { - Class clazz = Class.forName(classMap.get(engineName)); - relationalMeta = - (AbstractRelationalMeta) - clazz.getConstructor(StorageEngineMeta.class).newInstance(meta); - } catch (Exception e) { + // load jdbc meta from properties file + String propertiesPath = meta.getExtraParams().get("meta_properties_path"); + if (propertiesPath == null) { + if (!metaPathMap.containsKey(engineName)) { + // no default .properties exists & not provided by user throw new RelationalTaskExecuteFailureException( - String.format("engine %s is not supported", engineName), e); + String.format( + "A meta config .properties file must be provided for engine %s as 'meta_properties_path'.", + engineName)); + } else { + // load default .properties + try (InputStream propertiesIS = + this.getClass().getClassLoader().getResourceAsStream(metaPathMap.get(engineName))) { + if (propertiesIS == null) { + throw new RelationalTaskExecuteFailureException( + String.format( + "failed to find default meta properties %s for engine %s", + metaPathMap.get(engineName), engineName)); + } + relationalMeta = new JDBCMeta(meta, propertiesIS); + } catch (IOException e) { + throw new RelationalTaskExecuteFailureException( + String.format("failed to load default meta properties for engine %s", engineName), e); + } } } else { - String propertiesPath = meta.getExtraParams().get("meta_properties_path"); + // load user-provided .properties try { relationalMeta = new JDBCMeta(meta, propertiesPath); } catch (IOException e) { diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/JDBCDataTypeTransformer.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/JDBCDataTypeTransformer.java index 8aa6951c0c..e647b8c5af 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/JDBCDataTypeTransformer.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/JDBCDataTypeTransformer.java @@ -34,7 +34,7 @@ public JDBCDataTypeTransformer(Properties properties) { @Override public DataType fromEngineType(String dataType) { - String mappedType = typeMappings.getProperty(dataType); + String mappedType = typeMappings.getProperty(dataType.toUpperCase()); if (mappedType != null) { return str2DataType(mappedType); } diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/JDBCMeta.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/JDBCMeta.java index 568cf09fca..98cbf63109 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/JDBCMeta.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/JDBCMeta.java @@ -31,49 +31,37 @@ import java.util.Properties; public class JDBCMeta extends AbstractRelationalMeta { - - private final Properties properties; - private final char quote; - private String defaultDatabaseName; + private final String defaultDatabaseName; - private String driverClass; + private final String driverClass; - private JDBCDataTypeTransformer dataTypeTransformer; + private final JDBCDataTypeTransformer dataTypeTransformer; - private List systemDatabaseName; + private final List systemDatabaseName; - private String databaseQuerySql; + private final String databaseQuerySql; - private String databaseDropStatement; + private final String databaseDropStatement; - private boolean needQuote; + private final boolean needQuote; - private String schemaPattern; + private final String schemaPattern; - private String upsertStatement; + private final String upsertStatement; - private String upsertConflictStatement; + private final String upsertConflictStatement; - private boolean isSupportFullJoin; + private final boolean isSupportFullJoin; - private String regexpOp; + private final String regexpOp; - private String notRegexOp; + private final String notRegexOp; - private boolean jdbcSupportBackslash; + private final boolean jdbcSupportBackslash; - public JDBCMeta(StorageEngineMeta meta, String propertiesPath) throws IOException { + public JDBCMeta(StorageEngineMeta meta, Properties properties) { super(meta); - properties = new Properties(); - File file = new File(propertiesPath); - if (!file.exists()) { - throw new IOException(String.format("Properties file %s not found", file.getAbsolutePath())); - } - try (InputStream inputStream = Files.newInputStream(Paths.get(propertiesPath))) { - properties.load(inputStream); - } - quote = properties.getProperty("quote").charAt(0); driverClass = properties.getProperty("driver_class"); defaultDatabaseName = properties.getProperty("default_database"); @@ -92,6 +80,33 @@ public JDBCMeta(StorageEngineMeta meta, String propertiesPath) throws IOExceptio Boolean.parseBoolean(properties.getProperty("jdbc_support_special_char")); } + public JDBCMeta(StorageEngineMeta meta, String propertiesPath) throws IOException { + this(meta, getPropertiesFromPath(propertiesPath)); + } + + private static Properties getPropertiesFromPath(String propertiesPath) throws IOException { + Properties properties = new Properties(); + File file = new File(propertiesPath); + if (!file.exists()) { + throw new IOException(String.format("Properties file %s not found", file.getAbsolutePath())); + } + try (InputStream inputStream = Files.newInputStream(Paths.get(propertiesPath))) { + properties.load(inputStream); + } + return properties; + } + + public JDBCMeta(StorageEngineMeta meta, InputStream propertiesIS) throws IOException { + this(meta, getPropertiesFromInputStream(propertiesIS)); + } + + private static Properties getPropertiesFromInputStream(InputStream propertiesIS) + throws IOException { + Properties properties = new Properties(); + properties.load(propertiesIS); + return properties; + } + @Override public char getQuote() { return quote; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/PostgreSQLMeta.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/PostgreSQLMeta.java deleted file mode 100644 index c24e14c4a3..0000000000 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/PostgreSQLMeta.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * IGinX - the polystore system with high performance - * Copyright (C) Tsinghua University - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package cn.edu.tsinghua.iginx.relational.meta; - -import static cn.edu.tsinghua.iginx.relational.tools.Constants.KEY_NAME; - -import cn.edu.tsinghua.iginx.metadata.entity.StorageEngineMeta; -import cn.edu.tsinghua.iginx.relational.datatype.transformer.IDataTypeTransformer; -import cn.edu.tsinghua.iginx.relational.datatype.transformer.PostgreSQLDataTypeTransformer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import org.postgresql.ds.PGConnectionPoolDataSource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class PostgreSQLMeta extends AbstractRelationalMeta { - - private static final Logger LOGGER = LoggerFactory.getLogger(PostgreSQLMeta.class); - - private final Map connectionPoolMap = - new ConcurrentHashMap<>(); - - private static final String TIMEOUT_SETTING_SQL = - "alter system set idle_in_transaction_session_timeout='1min'"; - - private static final String DRIVER_CLASS = "org.postgresql.Driver"; - - private static final String DEFAULT_DATABASE_NAME = "postgres"; - - private static final PostgreSQLDataTypeTransformer dataTypeTransformer = - PostgreSQLDataTypeTransformer.getInstance(); - - private static final List SYSTEM_DATABASE_NAME = - new ArrayList<>(Arrays.asList("template0", "template1", "readme_to_recover")); - - public PostgreSQLMeta(StorageEngineMeta meta) { - super(meta); - } - - @Override - public String getDefaultDatabaseName() { - return DEFAULT_DATABASE_NAME; - } - - @Override - public String getDriverClass() { - return DRIVER_CLASS; - } - - @Override - public IDataTypeTransformer getDataTypeTransformer() { - return dataTypeTransformer; - } - - @Override - public List getSystemDatabaseName() { - return SYSTEM_DATABASE_NAME; - } - - @Override - public String getDatabaseQuerySql() { - return "SELECT datname FROM pg_database;"; - } - - @Override - public char getQuote() { - return '"'; - } - - public String getDropDatabaseStatement() { - return "DROP DATABASE IF EXISTS %s WITH (FORCE);"; - } - - @Override - public boolean jdbcNeedQuote() { - return false; - } - - @Override - public String getSchemaPattern() { - return "public"; - } - - @Override - public String getUpsertStatement() { - return " ON CONFLICT (" + getQuote() + KEY_NAME + getQuote() + ") DO UPDATE SET "; - } - - @Override - public String getUpsertConflictStatement() { - return "%s = EXCLUDED.%s"; - } - - @Override - public boolean isSupportFullJoin() { - return true; - } - - @Override - public String getRegexpOp() { - return "~"; - } - - @Override - public String getNotRegexpOp() { - return "!~"; - } - - @Override - public boolean jdbcSupportSpecialChar() { - return true; - } -} diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/Constants.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/Constants.java index 4a154f3743..2147af59c0 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/Constants.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/Constants.java @@ -44,9 +44,11 @@ public abstract class Constants { public static final String DROP_COLUMN_STATEMENT = "ALTER TABLE %s DROP COLUMN %s;"; - public static final Map classMap = new HashMap<>(); + public static final Map metaPathMap = new HashMap<>(); + // relative path to /resources static { - classMap.put("postgresql", "cn.edu.tsinghua.iginx.relational.meta.PostgreSQLMeta"); + metaPathMap.put("mysql", "mysql-meta-template.properties"); + metaPathMap.put("postgresql", "postgresql-meta-template.properties"); } } diff --git a/dataSource/relational/src/main/resources/postgresql-meta-template.properties b/dataSource/relational/src/main/resources/postgresql-meta-template.properties new file mode 100644 index 0000000000..f0f50189d1 --- /dev/null +++ b/dataSource/relational/src/main/resources/postgresql-meta-template.properties @@ -0,0 +1,70 @@ +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# 配置Postgresql META以供JDBCMeta读取 + +# 驱动类 +driver_class=org.postgresql.Driver +# 默认数据库 +default_database=postgres +# 系统数据库,用于过滤 +system_databases=template0,template1,readme_to_recover +# 用于包裹表名和字段名的引号 +quote=" +# 删除数据库的SQL语句 +drop_database_statement=DROP DATABASE IF EXISTS %s WITH (FORCE); +# 在JDBC使用getTables时是否需要加引号 +jdbc_need_quote=false +# upsert语句中间部分 +upsert_statement= ON CONFLICT ("RELATIONAL+KEY") DO UPDATE SET +# upsert语句后面部分格式 +upsert_conflict_statement=%s = EXCLUDED.%s +# 获取数据库列表的SQL语句 +database_query_sql=SELECT datname FROM pg_database; +# 是否支持full join +is_support_full_join=true +# filter中正则匹配的符号 +regex_like_symbol=~ +# filter中不匹配正则表达式的符号 +not_regex_like_symbol=!~ +# jdbc元数据获取是否支持特殊字符识别 +jdbc_support_special_char=true +# pg中public部分为非元数据(真实数据)部分 +schema_pattern=public + +# Postgresql DataTypeTransformer +# pg types 2 IGinX types +BOOL=IGinX-BOOLEAN +INT=IGinX-INTEGER +INT2=IGinX-INTEGER +INT4=IGinX-INTEGER +SERIAL2=IGinX-INTEGER +SERIAL4=IGinX-INTEGER +INT8=IGinX-LONG +SERIAL8=IGinX-LONG +FLOAT4=IGinX-FLOAT +DECIMAL=IGinX-DOUBLE +FLOAT8=IGinX-DOUBLE + +# IGinX types 2 pg types +IGinX-INTEGER=INTEGER +IGinX-FLOAT=REAL +IGinX-DOUBLE=DOUBLE PRECISION +IGinX-BOOLEAN=BOOLEAN +IGinX-BINARY=TEXT +IGinX-LONG=BIGINT diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java index 3034ca374e..b518d20e1d 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java @@ -40,8 +40,7 @@ public class MySQLCapacityExpansionIT extends BaseCapacityExpansionIT { public MySQLCapacityExpansionIT() { super( StorageEngineType.relational, - "engine:mysql, username:root," - + "meta_properties_path:dataSource/relational/src/main/resources/mysql-meta-template.properties", + "engine:mysql, username:root", new MySQLHistoryDataGenerator()); ConfLoader conf = new ConfLoader(Controller.CONFIG_FILE); DBConf dbConf = conf.loadDBConf(conf.getStorageType()); diff --git a/test/src/test/resources/testConfig.properties b/test/src/test/resources/testConfig.properties index ae5211a9bd..986ce83395 100644 --- a/test/src/test/resources/testConfig.properties +++ b/test/src/test/resources/testConfig.properties @@ -31,6 +31,7 @@ FileStore_mock=127.0.0.1#6667#filestore#iginx_port=6888#has_data=false#is_read_o PostgreSQL_mock=127.0.0.1#5432#relational#engine=postgresql#username=postgres#password=postgres#has_data=false MongoDB_mock=127.0.0.1#27017#MongoDB#has_data=false Redis_mock=127.0.0.1#6379#Redis#has_data=false#is_read_only=false#timeout=5000 +## for mysql: meta_properties_path param can be removed here from next commit(for tpc-h test which will use old version of IGinX) MySQL_mock=127.0.0.1#3306#relational#engine=mysql#has_data=false#username=root#meta_properties_path=../dataSource/relational/src/main/resources/mysql-meta-template.properties # class name for each DB From 5bf117845cc3f912cc78a0593879a61285c73408 Mon Sep 17 00:00:00 2001 From: An Qi Date: Mon, 16 Sep 2024 10:21:57 +0800 Subject: [PATCH 03/33] feat(thrift): auto update session_py (#443) Co-authored-by: Yuqing Zhu --- dataSource/filestore/pom.xml | 1 - pom.xml | 5 + thrift/pom.xml | 177 ++++++------------- thrift/src/main/{proto => thrift}/rpc.thrift | 0 4 files changed, 62 insertions(+), 121 deletions(-) rename thrift/src/main/{proto => thrift}/rpc.thrift (100%) diff --git a/dataSource/filestore/pom.xml b/dataSource/filestore/pom.xml index 90863c2bbf..d10455f818 100644 --- a/dataSource/filestore/pom.xml +++ b/dataSource/filestore/pom.xml @@ -208,7 +208,6 @@ org.apache.thrift thrift-maven-plugin - 0.10.0 ${thrift.exec.absolute.path} diff --git a/pom.xml b/pom.xml index 7decd7ef8f..49f7dcfc89 100644 --- a/pom.xml +++ b/pom.xml @@ -337,6 +337,11 @@ maven-assembly-plugin 3.7.1 + + org.apache.thrift + thrift-maven-plugin + 0.10.0 + com.mycila license-maven-plugin diff --git a/thrift/pom.xml b/thrift/pom.xml index ae890fca49..62c7b1f545 100644 --- a/thrift/pom.xml +++ b/thrift/pom.xml @@ -52,109 +52,50 @@ slf4j-api - + - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - org.apache.thrift.tools - maven-thrift-plugin - [0.1.10,) - - compile - - - - - false - - - - - - + org.apache.thrift + thrift-maven-plugin + + + generate-thrift-sources-java + + compile + + generate-sources + + java + + + + generate-thrift-sources-python + + compile + + generate-sources + + py + ${project.build.directory}/py + + + + + + + + + + + + + + - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - 8 - 8 - - - - org.apache.thrift.tools - maven-thrift-plugin - 0.1.11 - - - generate-thrift-sources-java - - compile - - generate-sources - - java - ${project.build.directory}/generated-sources/thrift - - - - generate-thrift-sources-python - - compile - - generate-sources - - py - ${project.build.directory}/generated-sources/py - - - - - - - - - - - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.2.0 - - - add-source - - add-source - - generate-sources - - - ${project.build.directory}/generated-sources/thrift - ${project.build.directory}/generated-sources/py - - - - - - @@ -171,7 +112,7 @@ thrift-generation - src/main/proto + src/main/thrift @@ -231,34 +172,30 @@ - org.apache.thrift.tools - maven-thrift-plugin - 0.1.11 + org.apache.thrift + thrift-maven-plugin + + ${thrift.exec.absolute.path} + + + + org.apache.maven.plugins + maven-antrun-plugin - generate-thrift-sources-java + copy-py-thrift - compile + run - generate-sources - - java - - - ${thrift.exec.absolute.path} - src/main/proto - - - - generate-thrift-sources-python - - compile - - generate-sources + package - py - ${thrift.exec.absolute.path} - src/main/proto + + + + + + + diff --git a/thrift/src/main/proto/rpc.thrift b/thrift/src/main/thrift/rpc.thrift similarity index 100% rename from thrift/src/main/proto/rpc.thrift rename to thrift/src/main/thrift/rpc.thrift From 4cbed6523b9fd6e2d0c9019d158b3008ce9e2564 Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Mon, 16 Sep 2024 21:15:32 +0800 Subject: [PATCH 04/33] fix(core): fix join with group by (#446) Co-authored-by: Yuqing Zhu --- .../sql/statement/frompart/SubQueryFromPart.java | 4 ++++ .../statement/select/BinarySelectStatement.java | 5 +++++ .../sql/statement/select/SelectStatement.java | 2 ++ .../statement/select/UnarySelectStatement.java | 5 +++++ .../iginx/integration/func/sql/SQLSessionIT.java | 15 +++++++++++++++ 5 files changed, 31 insertions(+) diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/SubQueryFromPart.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/SubQueryFromPart.java index e3e75433d7..7531cd20e6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/SubQueryFromPart.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/SubQueryFromPart.java @@ -71,6 +71,10 @@ public boolean hasAlias() { @Override public boolean hasSinglePrefix() { + if (!subQuery.isSimpleQuery()) { + return false; + } + if (hasAlias()) { return true; } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java index b7dbe5b082..8cce659cd2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java @@ -96,4 +96,9 @@ public void initFreeVariables() { public List> getSubQueryAliasList(String alias) { return leftQuery.getSubQueryAliasList(alias); } + + @Override + public boolean isSimpleQuery() { + return leftQuery.isSimpleQuery() && rightQuery.isSimpleQuery(); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java index d72a5c01cc..8527fe67bf 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java @@ -138,6 +138,8 @@ public void addFreeVariable(String freeVariable) { public abstract List> getSubQueryAliasList(String alias); + public abstract boolean isSimpleQuery(); + public enum SelectStatementType { UNARY, BINARY diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java index eb295ff313..86c931b69f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java @@ -451,6 +451,11 @@ public void setSlideDistance(long slideDistance) { this.groupByClause.setSlideDistance(slideDistance); } + @Override + public boolean isSimpleQuery() { + return groupByClause.getQueryType() == QueryType.SimpleQuery; + } + public QueryType getQueryType() { return groupByClause.getQueryType(); } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index cb2e096913..4f5ab12bd1 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -2721,6 +2721,21 @@ public void testJoinWithGroupBy() { + "+-----+----+\n" + "Total line number = 1\n"; executor.executeAndCompare(query, expected); + + query = + "select test1.d, sum(avg_a) from test1 join (select d, avg(a) as avg_a from test2 group by d) on test1.d = test2.d group by test1.d;"; + expected = + "ResultSets:\n" + + "+-------+----------+\n" + + "|test1.d|sum(avg_a)|\n" + + "+-------+----------+\n" + + "| val5| 2.0|\n" + + "| val3| 2.0|\n" + + "| val2| 4.0|\n" + + "| val1| 4.0|\n" + + "+-------+----------+\n" + + "Total line number = 4\n"; + executor.executeAndCompare(query, expected); } @Test From aec2bfd5297283c9bba3d71a77faa41b7394e229 Mon Sep 17 00:00:00 2001 From: An Qi Date: Tue, 17 Sep 2024 17:02:10 +0800 Subject: [PATCH 05/33] feat(filestore): reduce multi-threaded write conflicts for parquet (#439) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 把以前 parquet 没合并的内容补上 --- .../tsinghua/iginx/filestore/FileStorage.java | 384 ++++++++++++++++++ .../struct/legacy/parquet/LegacyParquet.java | 11 + .../parquet/db/lsm/buffer/ActiveMemTable.java | 6 +- .../parquet/db/lsm/buffer/MemTable.java | 13 +- .../parquet/db/lsm/buffer/chunk/Chunk.java | 2 - .../lsm/buffer/conflict/ConflictResolver.java | 28 ++ .../buffer/conflict/ConflictResolverType.java | 38 ++ .../db/lsm/buffer/conflict/NoneResolver.java | 34 ++ .../conflict/RecursiveTryLockResolver.java | 42 ++ .../buffer/conflict/ThreadPoolResolver.java | 63 +++ .../lsm/buffer/conflict/TryLockResolver.java | 85 ++++ .../legacy/parquet/db/util/WriteBatches.java | 3 +- .../parquet/util/StorageProperties.java | 30 ++ 13 files changed, 722 insertions(+), 17 deletions(-) create mode 100644 dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStorage.java create mode 100644 dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java create mode 100644 dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java create mode 100644 dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java create mode 100644 dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java create mode 100644 dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java create mode 100644 dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStorage.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStorage.java new file mode 100644 index 0000000000..4b4cf28156 --- /dev/null +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStorage.java @@ -0,0 +1,384 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.filestore; + +import static cn.edu.tsinghua.iginx.metadata.utils.StorageEngineUtils.isLocal; + +import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; +import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalTaskExecuteFailureException; +import cn.edu.tsinghua.iginx.engine.physical.exception.StorageInitializationException; +import cn.edu.tsinghua.iginx.engine.physical.storage.IStorage; +import cn.edu.tsinghua.iginx.engine.physical.storage.domain.Column; +import cn.edu.tsinghua.iginx.engine.physical.storage.domain.DataArea; +import cn.edu.tsinghua.iginx.engine.physical.task.TaskExecuteResult; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; +import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; +import cn.edu.tsinghua.iginx.engine.shared.function.Function; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionType; +import cn.edu.tsinghua.iginx.engine.shared.operator.*; +import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; +import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; +import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; +import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filestore.common.Configs; +import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; +import cn.edu.tsinghua.iginx.filestore.common.Filters; +import cn.edu.tsinghua.iginx.filestore.service.FileStoreConfig; +import cn.edu.tsinghua.iginx.filestore.service.FileStoreService; +import cn.edu.tsinghua.iginx.filestore.service.storage.StorageConfig; +import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; +import cn.edu.tsinghua.iginx.filestore.struct.FileStructure; +import cn.edu.tsinghua.iginx.filestore.struct.FileStructureManager; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.LegacyFilesystem; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.LegacyParquet; +import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; +import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; +import cn.edu.tsinghua.iginx.metadata.entity.StorageEngineMeta; +import cn.edu.tsinghua.iginx.thrift.AggregateType; +import cn.edu.tsinghua.iginx.thrift.StorageEngineType; +import cn.edu.tsinghua.iginx.utils.Pair; +import com.google.common.base.Strings; +import com.typesafe.config.Config; +import com.typesafe.config.ConfigFactory; +import java.net.InetSocketAddress; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FileStorage implements IStorage { + + private static final Logger LOGGER = LoggerFactory.getLogger(FileStorage.class); + + private final FileStoreService service; + + private final FileStoreConfig fileStoreConfig; + + private final ExecutorService executor = Executors.newCachedThreadPool(); + + private final boolean isLegacyParquet; + + static { + Collection structures = FileStructureManager.getInstance().getAll(); + LOGGER.info("found file structures: {}", structures); + } + + public FileStorage(StorageEngineMeta meta) throws StorageInitializationException { + if (!meta.getStorageEngine().equals(StorageEngineType.filestore)) { + throw new StorageInitializationException("unexpected database: " + meta.getStorageEngine()); + } + + String dataStructPath = + String.join(".", FileStoreConfig.Fields.data, StorageConfig.Fields.struct); + isLegacyParquet = + LegacyParquet.NAME.equals( + meta.getExtraParams().getOrDefault(dataStructPath, LegacyParquet.NAME)); + + InetSocketAddress address = new InetSocketAddress(meta.getIp(), meta.getPort()); + this.fileStoreConfig = toFileStoreConfig(meta); + try { + this.service = new FileStoreService(address, fileStoreConfig); + } catch (FileStoreException e) { + throw new StorageInitializationException("file store initialization error", e); + } + } + + static FileStoreConfig toFileStoreConfig(StorageEngineMeta meta) + throws StorageInitializationException { + Config rawConfig = toConfig(meta); + LOGGER.debug("storage of {} config: {}", meta, rawConfig); + FileStoreConfig fileStoreConfig = FileStoreConfig.of(rawConfig); + LOGGER.debug("storage of {} will be initialized with {}", meta, fileStoreConfig); + List problems = fileStoreConfig.validate(); + if (!problems.isEmpty()) { + throw new StorageInitializationException("invalided config: " + problems); + } + return fileStoreConfig; + } + + static Config toConfig(StorageEngineMeta meta) throws StorageInitializationException { + HashMap reshaped = new HashMap<>(); + + for (Map.Entry param : meta.getExtraParams().entrySet()) { + String key = param.getKey(); + String value = param.getValue(); + if (key.contains(".")) { + reshaped.put(key, value); + } + } + + Configs.put( + reshaped, + meta.getExtraParams().get("dir"), + FileStoreConfig.Fields.data, + StorageConfig.Fields.root); + Configs.put( + reshaped, + meta.getExtraParams().get("dummy_dir"), + FileStoreConfig.Fields.dummy, + StorageConfig.Fields.root); + Configs.put( + reshaped, + meta.getExtraParams().get("embedded_prefix"), + FileStoreConfig.Fields.dummy, + StorageConfig.Fields.config, + FileTreeConfig.Fields.prefix); + Configs.putIfAbsent( + reshaped, LegacyParquet.NAME, FileStoreConfig.Fields.data, StorageConfig.Fields.struct); + Configs.putIfAbsent( + reshaped, LegacyFilesystem.NAME, FileStoreConfig.Fields.dummy, StorageConfig.Fields.struct); + + boolean local = isLocal(meta); + reshaped.put(FileStoreConfig.Fields.serve, String.valueOf(local)); + + Config config = ConfigFactory.parseMap(reshaped, "storage engine initialization parameters"); + + if (local) { + LOGGER.debug("storage of {} is local, ignore config for remote", meta); + config = config.withoutPath(FileStoreConfig.Fields.client); + + if (!meta.isHasData()) { + LOGGER.debug("storage of {} don't have data, ignore config for dummy", meta); + config = config.withoutPath(FileStoreConfig.Fields.dummy); + } + + if (meta.isReadOnly()) { + LOGGER.debug("storage of {} is read only, ignore config for iginx data", meta); + config = config.withoutPath(FileStoreConfig.Fields.data); + } + } else { + LOGGER.debug("storage of {} is remote, ignore config for local", meta); + config = config.withoutPath(FileStoreConfig.Fields.data); + config = config.withoutPath(FileStoreConfig.Fields.dummy); + } + + return config; + } + + @Override + public TaskExecuteResult executeProject(Project project, DataArea dataArea) { + return executeQuery(unitOf(dataArea), getDataTargetOf(project, dataArea), null); + } + + @Override + public TaskExecuteResult executeProjectDummy(Project project, DataArea dataArea) { + return executeQuery(unitOfDummy(), getDataTargetOf(project, dataArea), null); + } + + @Override + public boolean isSupportProjectWithSelect() { + return true; + } + + @Override + public TaskExecuteResult executeProjectWithSelect( + Project project, Select select, DataArea dataArea) { + return executeQuery(unitOf(dataArea), getDataTargetOf(select, project, dataArea), null); + } + + @Override + public TaskExecuteResult executeProjectDummyWithSelect( + Project project, Select select, DataArea dataArea) { + return executeQuery(unitOfDummy(), getDataTargetOf(select, project, dataArea), null); + } + + @Override + public boolean isSupportProjectWithSetTransform(SetTransform setTransform, DataArea dataArea) { + if (!isLegacyParquet) { + return false; + } + + // just push down in full column fragment + KeyInterval keyInterval = dataArea.getKeyInterval(); + if (keyInterval.getStartKey() > 0 || keyInterval.getEndKey() < Long.MAX_VALUE) { + return false; + } + + // just push down count(*) for now + List functionCalls = setTransform.getFunctionCallList(); + if (functionCalls.size() != 1) { + return false; + } + FunctionCall functionCall = functionCalls.get(0); + Function function = functionCall.getFunction(); + FunctionParams params = functionCall.getParams(); + if (function.getFunctionType() != FunctionType.System) { + return false; + } + if (!function.getIdentifier().equals("count")) { + return false; + } + if (params.getPaths().size() != 1) { + return false; + } + String path = params.getPaths().get(0); + return path.equals("*") || path.equals("*.*"); + } + + @Override + public TaskExecuteResult executeProjectWithSetTransform( + Project project, SetTransform setTransform, DataArea dataArea) { + if (!isSupportProjectWithSetTransform(setTransform, dataArea)) { + throw new IllegalArgumentException("unsupported set transform"); + } + + DataArea reshapedDataArea = + new DataArea(dataArea.getStorageUnit(), KeyInterval.getDefaultKeyInterval()); + + return executeQuery( + unitOf(dataArea), getDataTargetOf(project, reshapedDataArea), AggregateType.COUNT); + } + + @Override + public TaskExecuteResult executeDelete(Delete delete, DataArea dataArea) { + Filter filter; + if (delete.getKeyRanges() == null || delete.getKeyRanges().isEmpty()) { + filter = null; + } else { + filter = Filters.toFilter(delete.getKeyRanges()); + } + try { + service.delete( + unitOf(dataArea), new DataTarget(filter, delete.getPatterns(), delete.getTagFilter())); + return new TaskExecuteResult(); + } catch (PhysicalException e) { + return new TaskExecuteResult(e); + } + } + + @Override + public TaskExecuteResult executeInsert(Insert insert, DataArea dataArea) { + try { + service.insert(unitOf(dataArea), insert.getData()); + return new TaskExecuteResult(); + } catch (PhysicalException e) { + return new TaskExecuteResult(e); + } + } + + @Override + public List getColumns(Set patterns, TagFilter tagFilter) + throws PhysicalException { + List columns = Collections.synchronizedList(new ArrayList<>()); + List columnsWrapper = Collections.synchronizedList(columns); + + Map units = service.getUnits(null); + + List patternList = new ArrayList<>(patterns); + if (patternList.isEmpty()) { + patternList = null; + } + + DataTarget dataTarget = new DataTarget(new BoolFilter(false), patternList, tagFilter); + + List> futures = new ArrayList<>(); + for (DataUnit unit : units.keySet()) { + CompletableFuture future = + CompletableFuture.supplyAsync( + () -> { + List localColumns = new ArrayList<>(); + try (RowStream stream = service.query(unit, dataTarget, null)) { + Header header = stream.getHeader(); + for (Field field : header.getFields()) { + localColumns.add( + new Column( + field.getName(), field.getType(), field.getTags(), unit.isDummy())); + } + } catch (PhysicalException e) { + throw new CompletionException(e); + } + return localColumns; + }, + executor) + .thenAccept(columnsWrapper::addAll); + futures.add(future); + } + + try { + CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); + } catch (CompletionException e) { + throw new FileStoreException(e); + } + + return columns; + } + + @Override + public Pair getBoundaryOfStorage(String prefix) + throws PhysicalException { + Map units = service.getUnits(Strings.emptyToNull(prefix)); + DataBoundary boundary = units.get(unitOfDummy()); + if (Objects.equals(boundary, new DataBoundary())) { + throw new PhysicalTaskExecuteFailureException("no data"); + } + ColumnsInterval columnsInterval = + new ColumnsInterval(boundary.getStartColumn(), boundary.getEndColumn()); + KeyInterval keyInterval = new KeyInterval(boundary.getStartKey(), boundary.getEndKey()); + return new Pair<>(columnsInterval, keyInterval); + } + + @Override + public void release() throws PhysicalException { + service.close(); + executor.shutdown(); + } + + private static DataUnit unitOf(DataArea dataArea) { + DataUnit dataUnit = new DataUnit(); + dataUnit.setDummy(false); + dataUnit.setName(dataArea.getStorageUnit()); + return dataUnit; + } + + private static DataUnit unitOfDummy() { + DataUnit dataUnit = new DataUnit(); + dataUnit.setDummy(true); + return dataUnit; + } + + private static DataTarget getDataTargetOf(Project project, DataArea dataArea) { + Filter filter = Filters.toFilter(dataArea.getKeyInterval()); + return new DataTarget(filter, project.getPatterns(), project.getTagFilter()); + } + + private static DataTarget getDataTargetOf(Select select, Project project, DataArea dataArea) { + Filter rangeFilter = Filters.toFilter(dataArea.getKeyInterval()); + Filter filter = Filters.nullableAnd(rangeFilter, select.getFilter()); + return new DataTarget(filter, project.getPatterns(), project.getTagFilter()); + } + + public TaskExecuteResult executeQuery( + DataUnit unit, DataTarget target, @Nullable AggregateType aggregateType) { + try { + RowStream stream = service.query(unit, target, aggregateType); + return new TaskExecuteResult(stream); + } catch (PhysicalException e) { + return new TaskExecuteResult(e); + } + } +} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquet.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquet.java index 27bcda8d68..31cdd559eb 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquet.java +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquet.java @@ -28,10 +28,14 @@ import java.io.IOException; import java.nio.file.Path; import java.time.Duration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @AutoService(FileStructure.class) public class LegacyParquet implements FileStructure { + private static final Logger LOGGER = LoggerFactory.getLogger(LegacyParquet.class); + public static final String NAME = "LegacyParquet"; @Override @@ -64,6 +68,10 @@ public Closeable newShared(Config config) throws IOException { builder.setWriteBufferChunkValuesMin( config.getInt(StorageProperties.Builder.WRITE_BUFFER_CHUNK_VALUES_MIN)); } + if (config.hasPath(StorageProperties.Builder.WRITE_BUFFER_CONFLICT_RESOLVER)) { + builder.setWriteBufferConflictResolverType( + config.getString(StorageProperties.Builder.WRITE_BUFFER_CONFLICT_RESOLVER)); + } if (config.hasPath(StorageProperties.Builder.WRITE_BUFFER_CHUNK_INDEX)) { builder.setWriteBufferChunkIndex( config.getString(StorageProperties.Builder.WRITE_BUFFER_CHUNK_INDEX)); @@ -115,6 +123,9 @@ public Closeable newShared(Config config) throws IOException { } StorageProperties storageProperties = builder.build(); + + LOGGER.info("Create shared storage properties: {}", storageProperties); + return Shared.of(storageProperties); } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java index 6f0f21e33f..0188d2fce9 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java @@ -18,6 +18,7 @@ package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer; import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict.ConflictResolver; import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.MemoryTable; import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; @@ -44,6 +45,7 @@ public class ActiveMemTable { private final Shared shared; private final BufferAllocator allocator; + private final ConflictResolver resolver; private long activeId = 0; private BufferAllocator activeAllocator = null; @@ -53,6 +55,7 @@ public class ActiveMemTable { ActiveMemTable(Shared shared, BufferAllocator allocator) { this.shared = Preconditions.checkNotNull(shared); this.allocator = Preconditions.checkNotNull(allocator); + this.resolver = shared.getStorageProperties().getWriteBufferConflictResolverType().create(); } public boolean isOverloaded() { @@ -70,7 +73,7 @@ public void store(Iterable data) { switchTableLock.readLock().lock(); try { createMemtableIfNotExist(); - activeTable.store(data); + resolver.append(activeTable, data); } finally { switchTableLock.readLock().unlock(); } @@ -211,6 +214,7 @@ public void reset() { flushLock.writeLock().lock(); switchTableLock.writeLock().lock(); try { + resolver.reset(); if (activeTable != null) { activeTable.close(); activeAllocator.close(); diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTable.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTable.java index 0caa1be9d1..8cd07bc9bd 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTable.java +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTable.java @@ -21,7 +21,6 @@ import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.MemoryTable; import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowFields; import com.google.common.collect.RangeSet; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -106,25 +105,15 @@ public MemoryTable snapshot(BufferAllocator allocator) { return new MemoryTable(columns); } - public void store(Iterable data) { - lock.readLock().lock(); - try { - data.forEach(this::store); - } finally { - lock.readLock().unlock(); - } - } - public void store(Chunk.Snapshot data) { lock.readLock().lock(); try { if (closed) { throw new IllegalStateException("MemTable is closed"); } - Field field = ArrowFields.nullable(data.getField()); MemColumn column = columns.computeIfAbsent( - field, + data.getField(), key -> new MemColumn(factory, allocator, maxChunkValueCount, minChunkValueCount)); column.store(data); } finally { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java index dcf4be68d3..ff0f909d1f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java @@ -90,8 +90,6 @@ public Snapshot( Preconditions.checkNotNull(keys); Preconditions.checkNotNull(values); Preconditions.checkArgument(keys.getValueCount() == values.getValueCount()); - Preconditions.checkArgument(!keys.getField().isNullable()); - Preconditions.checkArgument(!values.getField().isNullable()); this.keys = keys; this.values = values; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java new file mode 100644 index 0000000000..a98935ab89 --- /dev/null +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java @@ -0,0 +1,28 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; + +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; + +public interface ConflictResolver { + + void append(MemTable activeTable, Iterable data); + + void reset(); +} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java new file mode 100644 index 0000000000..feacb3a21d --- /dev/null +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java @@ -0,0 +1,38 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; + +import java.util.Objects; +import java.util.function.Supplier; + +public enum ConflictResolverType { + TRY_LOCK(TryLockResolver::new), + REC_TRY_LOCK(RecursiveTryLockResolver::new), + MULTI_QUEUE(ThreadPoolResolver::new), + NONE(NoneResolver::new); + + private final Supplier factory; + + ConflictResolverType(Supplier factory) { + this.factory = Objects.requireNonNull(factory); + } + + public ConflictResolver create() { + return factory.get(); + } +} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java new file mode 100644 index 0000000000..5718ffd50a --- /dev/null +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java @@ -0,0 +1,34 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; + +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; + +public class NoneResolver implements ConflictResolver { + + @Override + public void append(MemTable activeTable, Iterable data) { + for (Chunk.Snapshot snapshot : data) { + activeTable.store(snapshot); + } + } + + @Override + public void reset() {} +} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java new file mode 100644 index 0000000000..ef6b212b4a --- /dev/null +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java @@ -0,0 +1,42 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; + +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class RecursiveTryLockResolver extends TryLockResolver { + + @Override + public void append(MemTable activeTable, Iterable data) { + List toStore = new ArrayList<>(); + data.forEach(toStore::add); + while (!toStore.isEmpty()) { + List blocked = tryAppend(activeTable, toStore); + if (blocked.size() * 2 > toStore.size()) { + Collections.shuffle(toStore); + awaitAppend(activeTable, toStore); + break; + } + toStore = blocked; + } + } +} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java new file mode 100644 index 0000000000..241adcf994 --- /dev/null +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java @@ -0,0 +1,63 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; + +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.concurrent.*; +import org.apache.arrow.vector.types.pojo.Field; + +public class ThreadPoolResolver implements ConflictResolver { + private final ConcurrentMap executors = new ConcurrentHashMap<>(); + private final Set touched = Collections.newSetFromMap(new ConcurrentHashMap<>()); + + @Override + public void reset() { + // remove all untouched fields + executors.keySet().removeIf(field -> !touched.contains(field)); + touched.clear(); + } + + @Override + public void append(MemTable activeTable, Iterable data) { + List> futures = new ArrayList<>(); + for (Chunk.Snapshot chunk : data) { + CompletableFuture future = + CompletableFuture.runAsync( + () -> { + activeTable.store(chunk); + }, + getExecutor(chunk)); + futures.add(future); + } + CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); + } + + private ExecutorService getExecutor(Field field) { + touched.add(field); + return executors.computeIfAbsent(field, f -> Executors.newSingleThreadExecutor()); + } + + private ExecutorService getExecutor(Chunk.Snapshot data) { + return getExecutor(data.getField()); + } +} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java new file mode 100644 index 0000000000..13c4412f60 --- /dev/null +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java @@ -0,0 +1,85 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; + +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; +import org.apache.arrow.vector.types.pojo.Field; + +public class TryLockResolver implements ConflictResolver { + + protected final ConcurrentHashMap locks = new ConcurrentHashMap<>(); + + @Override + public void reset() { + locks.clear(); + } + + @Override + public void append(MemTable activeTable, Iterable data) { + List blocked = tryAppend(activeTable, data); + + Collections.shuffle(blocked); + + awaitAppend(activeTable, blocked); + } + + protected Lock getLock(Field field) { + return locks.computeIfAbsent(field, f -> new ReentrantLock()); + } + + protected Lock getLock(Chunk.Snapshot data) { + return getLock(data.getField()); + } + + protected List tryAppend(MemTable activeTable, Iterable data) { + List blocked = new ArrayList<>(); + + for (Chunk.Snapshot snapshot : data) { + Lock lock = getLock(snapshot); + if (lock.tryLock()) { + try { + activeTable.store(snapshot); + } finally { + lock.unlock(); + } + } else { + blocked.add(snapshot); + } + } + return blocked; + } + + protected void awaitAppend(MemTable activeTable, Iterable data) { + for (Chunk.Snapshot snapshot : data) { + Lock lock = getLock(snapshot); + lock.lock(); + try { + activeTable.store(snapshot); + } finally { + lock.unlock(); + } + } + } +} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/WriteBatches.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/WriteBatches.java index 4df7e0f6cb..52745ca155 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/WriteBatches.java +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/WriteBatches.java @@ -48,8 +48,7 @@ private static class ChunkSnapshotBuilder { public ChunkSnapshotBuilder(ColumnKey columnKey, DataType type, BufferAllocator allocator) { this.keyVector = ArrowVectors.key(allocator); Types.MinorType minorType = ArrowTypes.minorTypeOf(type); - this.valueVector = - minorType.getNewVector(ArrowFields.of(false, columnKey, type), allocator, null); + this.valueVector = minorType.getNewVector(ArrowFields.of(columnKey, type), allocator, null); this.valueWriter = minorType.getNewFieldWriter(valueVector); switch (type) { case BOOLEAN: diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/StorageProperties.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/StorageProperties.java index f8f1defd95..a6fe1b2664 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/StorageProperties.java +++ b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/StorageProperties.java @@ -20,6 +20,7 @@ import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunkType; +import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict.ConflictResolverType; import java.time.Duration; import java.util.Map; import java.util.Optional; @@ -32,6 +33,7 @@ public class StorageProperties { private final long writeBufferSize; private final int writeBufferChunkValuesMax; private final int writeBufferChunkValuesMin; + private final ConflictResolverType writeBufferConflictResolverType; private final IndexedChunkType writeBufferChunkType; private final Duration writeBufferTimeout; private final long writeBatchSize; @@ -54,6 +56,7 @@ private StorageProperties( int writeBufferPermits, int writeBufferChunkValuesMax, int writeBufferChunkValuesMin, + ConflictResolverType writeBufferConflictResolverType, IndexedChunkType writeBufferChunkType, Duration writeBufferTimeout, long writeBatchSize, @@ -72,6 +75,7 @@ private StorageProperties( this.writeBufferSize = writeBufferSize; this.writeBufferChunkValuesMax = writeBufferChunkValuesMax; this.writeBufferChunkValuesMin = writeBufferChunkValuesMin; + this.writeBufferConflictResolverType = writeBufferConflictResolverType; this.writeBufferChunkType = writeBufferChunkType; this.writeBufferTimeout = writeBufferTimeout; this.writeBatchSize = writeBatchSize; @@ -135,6 +139,15 @@ public int getWriteBufferChunkValuesMin() { return writeBufferChunkValuesMin; } + /** + * Get the write buffer conflict resolver type + * + * @return the write buffer conflict resolver type + */ + public ConflictResolverType getWriteBufferConflictResolverType() { + return writeBufferConflictResolverType; + } + /** * Get the write buffer chunk factory * @@ -297,6 +310,7 @@ public static class Builder { public static final String WRITE_BUFFER_PERMITS = "write.buffer.permits"; public static final String WRITE_BUFFER_CHUNK_VALUES_MAX = "write.buffer.chunk.values.max"; public static final String WRITE_BUFFER_CHUNK_VALUES_MIN = "write.buffer.chunk.values.min"; + public static final String WRITE_BUFFER_CONFLICT_RESOLVER = "write.buffer.conflictResolver"; public static final String WRITE_BUFFER_CHUNK_INDEX = "write.buffer.chunk.index"; public static final String WRITE_BUFFER_TIMEOUT = "write.buffer.timeout"; public static final String WRITE_BATCH_SIZE = "write.batch.size"; @@ -317,6 +331,7 @@ public static class Builder { private int writeBufferPermits = 2; private int writeBufferChunkValuesMax = BaseValueVector.INITIAL_VALUE_ALLOCATION; private int writeBufferChunkValuesMin = BaseValueVector.INITIAL_VALUE_ALLOCATION; + private ConflictResolverType writeBufferConflictResolverType = ConflictResolverType.NONE; private IndexedChunkType writeBufferChunkIndex = IndexedChunkType.NONE; private Duration writeBufferTimeout = Duration.ofSeconds(0); private long writeBatchSize = 1024 * 1024; // BYTE @@ -394,6 +409,18 @@ public Builder setWriteBufferChunkValuesMin(int writeBufferChunkValuesMin) { return this; } + /** + * Set the write buffer conflict resolver type + * + * @param writeBufferConflictResolverType the write buffer conflict resolver type + * @return this builder + */ + public Builder setWriteBufferConflictResolverType(String writeBufferConflictResolverType) { + this.writeBufferConflictResolverType = + ConflictResolverType.valueOf(writeBufferConflictResolverType); + return this; + } + /** * Set the write buffer chunk index * @@ -575,6 +602,8 @@ public Builder parse(Map properties) { .ifPresent(this::setWriteBufferChunkValuesMax); ParseUtils.getOptionalInteger(properties, WRITE_BUFFER_CHUNK_VALUES_MIN) .ifPresent(this::setWriteBufferChunkValuesMin); + ParseUtils.getOptionalString(properties, WRITE_BUFFER_CONFLICT_RESOLVER) + .ifPresent(this::setWriteBufferConflictResolverType); ParseUtils.getOptionalString(properties, WRITE_BUFFER_CHUNK_INDEX) .ifPresent(this::setWriteBufferChunkIndex); ParseUtils.getOptionalDuration(properties, WRITE_BUFFER_TIMEOUT) @@ -612,6 +641,7 @@ public StorageProperties build() { writeBufferPermits, writeBufferChunkValuesMax, writeBufferChunkValuesMin, + writeBufferConflictResolverType, writeBufferChunkIndex, writeBufferTimeout, writeBatchSize, From ff41e2481aaaf912d5e8846da44545ca273cc221 Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Mon, 23 Sep 2024 15:32:14 +0800 Subject: [PATCH 06/33] feat(sql): func params support expression (#445) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持在函数参数中使用表达式 --- .../antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 2 +- .../logical/generator/QueryGenerator.java | 150 ++------ .../engine/logical/utils/OperatorUtils.java | 3 +- .../naive/NaiveOperatorMemoryExecutor.java | 145 ++------ .../stream/RowTransformLazyStream.java | 56 +-- .../stream/SetTransformLazyStream.java | 15 +- .../stream/StreamOperatorMemoryExecutor.java | 20 +- .../memory/execute/utils/ExprUtils.java | 111 +++--- .../memory/execute/utils/RowUtils.java | 207 ++++++++++- .../engine/shared/expr/FuncExpression.java | 33 +- .../engine/shared/function/FunctionCall.java | 28 +- .../shared/function/FunctionParams.java | 61 ++-- .../engine/shared/function/FunctionUtils.java | 62 ++++ .../function/system/ArithmeticExpr.java | 4 +- .../engine/shared/function/system/Ratio.java | 2 +- .../engine/shared/operator/SetTransform.java | 2 +- .../tsinghua/iginx/sql/IginXSqlVisitor.java | 66 ++-- .../select/UnarySelectStatement.java | 302 ++++++++-------- .../select/subclause/SelectClause.java | 138 ++++---- .../AbstractOperatorMemoryExecutorTest.java | 13 +- .../cn/edu/tsinghua/iginx/sql/ParseTest.java | 33 +- .../optimizer/rules/ColumnPruningRule.java | 11 +- .../FilterPushDownAddSchemaPrefixRule.java | 4 +- .../rules/FilterPushDownRenameRule.java | 6 +- .../RowTransformConstantFoldingRule.java | 11 +- .../integration/datasource/DataSourceIT.java | 4 +- .../integration/func/sql/SQLSessionIT.java | 330 +++++++++++++++++- .../iginx/integration/func/udf/UDFIT.java | 39 +++ .../iginx/integration/other/UDFPathIT.java | 1 + udf_funcs/python_scripts/udtf_arccos.py | 43 +++ udf_funcs/udf_list | 1 + 31 files changed, 1221 insertions(+), 682 deletions(-) create mode 100644 udf_funcs/python_scripts/udtf_arccos.py diff --git a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 index fb3a338f38..c0c1d3e77a 100644 --- a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 +++ b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 @@ -125,7 +125,7 @@ expression ; function - : functionName LR_BRACKET (ALL | DISTINCT)? path (COMMA path)* (COMMA param)* RR_BRACKET + : functionName LR_BRACKET (ALL | DISTINCT)? expression (COMMA expression)* (COMMA param)* RR_BRACKET ; param diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java index f9b515fa8c..2856aa5c30 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java @@ -19,8 +19,6 @@ package cn.edu.tsinghua.iginx.engine.logical.generator; import static cn.edu.tsinghua.iginx.engine.shared.Constants.ALL_PATH_SUFFIX; -import static cn.edu.tsinghua.iginx.engine.shared.Constants.ORDINAL; -import static cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr.ARITHMETIC_EXPR; import cn.edu.tsinghua.iginx.conf.Config; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; @@ -31,14 +29,15 @@ import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.expr.FromValueExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; +import cn.edu.tsinghua.iginx.engine.shared.function.Function; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; import cn.edu.tsinghua.iginx.engine.shared.function.manager.FunctionManager; import cn.edu.tsinghua.iginx.engine.shared.operator.*; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.type.FuncType; import cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OuterJoinType; @@ -195,7 +194,7 @@ private Operator generateRoot(UnarySelectStatement selectStatement) { root = buildAggregateQuery(selectStatement, root); - root = buildLastFirstQuery(selectStatement, root); + root = buildMappingQuery(selectStatement, root); root = buildSimpleQuery(selectStatement, root); @@ -595,28 +594,17 @@ private static Operator buildSimpleQuery(UnarySelectStatement selectStatement, O } /** - * 如果SelectStatement的QueryType是LastFirstQuery,在root之上构建相关操作符 + * 如果SelectStatement的QueryType是MappingQuery,在root之上构建相关操作符 * * @param selectStatement Select上下文 * @param root 当前根节点 - * @return 添加了相关操作符的根节点;如果QueryType不是LastFirstQuery,返回原根节点 + * @return 添加了相关操作符的根节点;如果QueryType不是MappingQuery,返回原根节点 */ - private static Operator buildLastFirstQuery(UnarySelectStatement selectStatement, Operator root) { - if (selectStatement.getQueryType() != QueryType.LastFirstQuery) { + private static Operator buildMappingQuery(UnarySelectStatement selectStatement, Operator root) { + if (selectStatement.getQueryType() != QueryType.MappingQuery) { return root; } - List functionCallList = new ArrayList<>(); - selectStatement - .getFuncExpressionMap() - .forEach( - (k, v) -> - v.forEach( - expression -> { - FunctionParams params = getFunctionParams(k, expression); - functionCallList.add( - new FunctionCall(functionManager.getFunction(k), params)); - })); - + List functionCallList = getFunctionCallList(selectStatement, MappingType.Mapping); return new MappingTransform(new OperatorSource(root), functionCallList); } @@ -631,56 +619,9 @@ private static Operator buildAggregateQuery(UnarySelectStatement selectStatement if (selectStatement.getQueryType() != QueryType.AggregateQuery) { return root; } - List queryList = new ArrayList<>(); - List functionCallList = new ArrayList<>(); - Operator finalRoot = root; - selectStatement - .getFuncExpressionMap() - .forEach( - (k, v) -> - v.forEach( - expression -> { - FunctionParams params = getFunctionParams(k, expression); - functionCallList.add( - new FunctionCall(functionManager.getFunction(k), params)); - })); - - if (!functionCallList.isEmpty()) { - switch (functionCallList.get(0).getFunction().getMappingType()) { - case Mapping: - queryList.add(new MappingTransform(new OperatorSource(finalRoot), functionCallList)); - break; - case RowMapping: - queryList.add(new RowTransform(new OperatorSource(finalRoot), functionCallList)); - break; - case SetMapping: - queryList.add(new SetTransform(new OperatorSource(finalRoot), functionCallList)); - break; - default: - throw new RuntimeException( - "Unknown mapping type: " + functionCallList.get(0).getFunction().getMappingType()); - } - } - - selectStatement - .getBaseExpressionList() - .forEach( - expression -> { - Operator copySelect = finalRoot.copy(); - queryList.add( - new Project( - new OperatorSource(copySelect), - Collections.singletonList(expression.getPathName()), - selectStatement.getTagFilter())); - }); - - if (selectStatement.getFuncTypeSet().contains(FuncType.Udtf)) { - root = OperatorUtils.joinOperatorsByTime(queryList); - } else { - root = OperatorUtils.joinOperators(queryList, ORDINAL); - } - - return root; + List functionCallList = + getFunctionCallList(selectStatement, MappingType.SetMapping); + return new SetTransform(new OperatorSource(root), functionCallList); } /** @@ -694,21 +635,8 @@ private Operator buildGroupByQuery(UnarySelectStatement selectStatement, Operato if (selectStatement.getQueryType() != QueryType.GroupByQuery) { return root; } - List functionCallList = new ArrayList<>(); - selectStatement - .getFuncExpressionMap() - .forEach( - (k, v) -> { - if (!k.equals("")) { - v.forEach( - expression -> { - FunctionParams params = getFunctionParams(k, expression); - functionCallList.add( - new FunctionCall(functionManager.getFunction(k), params)); - }); - } - }); - + List functionCallList = + getFunctionCallList(selectStatement, MappingType.SetMapping); return new GroupBy( new OperatorSource(root), selectStatement.getGroupByPaths(), functionCallList); } @@ -724,19 +652,8 @@ private Operator buildDownSampleQuery(UnarySelectStatement selectStatement, Oper if (selectStatement.getQueryType() != QueryType.DownSampleQuery) { return root; } - List functionCallList = new ArrayList<>(); - - selectStatement - .getFuncExpressionMap() - .forEach( - (k, v) -> - v.forEach( - expression -> { - FunctionParams params = getFunctionParams(k, expression); - functionCallList.add( - new FunctionCall(functionManager.getFunction(k), params)); - })); - + List functionCallList = + getFunctionCallList(selectStatement, MappingType.SetMapping); return new Downsample( new OperatorSource(root), selectStatement.getPrecision(), @@ -765,7 +682,7 @@ private static Operator buildReorder(UnarySelectStatement selectStatement, Opera || !funcExpression.getKvargs().isEmpty(); }); - if (selectStatement.getQueryType().equals(QueryType.LastFirstQuery)) { + if (selectStatement.isLastFirst()) { root = new Reorder(new OperatorSource(root), Arrays.asList("path", "value")); } else if (hasFuncWithArgs) { root = new Reorder(new OperatorSource(root), Collections.singletonList("*")); @@ -874,20 +791,8 @@ private static Operator buildRowTransform(UnarySelectStatement selectStatement, if (!selectStatement.needRowTransform()) { return root; } - List functionCallList = new ArrayList<>(); - for (Expression expression : selectStatement.getExpressions()) { - if (expression instanceof FuncExpression) { - FuncExpression funcExpression = (FuncExpression) expression; - functionCallList.add( - new FunctionCall( - functionManager.getFunction(funcExpression.getFuncName()), - getFunctionParams(funcExpression.getFuncName(), funcExpression))); - } else { - functionCallList.add( - new FunctionCall( - functionManager.getFunction(ARITHMETIC_EXPR), new FunctionParams(expression))); - } - } + List functionCallList = + FunctionUtils.getFunctionCalls(selectStatement.getExpressions()); root = new RowTransform(new OperatorSource(root), functionCallList); return root; @@ -1056,14 +961,29 @@ private Operator filterAndMergeFragments(UnarySelectStatement selectStatement) { return MetaUtils.mergeRawData(fragments, dummyFragments, pathList, tagFilter); } + /** 获取对应类型的FunctionCall */ + private static List getFunctionCallList( + UnarySelectStatement selectStatement, MappingType mappingType) { + List functionCallList = new ArrayList<>(); + List target = selectStatement.getTargetTypeFuncExprList(mappingType); + target.forEach( + expression -> { + Function function = functionManager.getFunction(expression.getFuncName()); + FunctionParams params = getFunctionParams(expression.getFuncName(), expression); + functionCallList.add(new FunctionCall(function, params)); + }); + return functionCallList; + } + /** 从Expression中获取params */ private static FunctionParams getFunctionParams(String functionName, FuncExpression expression) { return FunctionUtils.isCanUseSetQuantifierFunction(functionName) ? new FunctionParams( - expression.getColumns(), + expression.getExpressions(), expression.getArgs(), expression.getKvargs(), expression.isDistinct()) - : new FunctionParams(expression.getColumns(), expression.getArgs(), expression.getKvargs()); + : new FunctionParams( + expression.getExpressions(), expression.getArgs(), expression.getKvargs()); } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java index 76000d76ff..0cc7ec0393 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java @@ -280,7 +280,8 @@ private static Operator pushDownApply(Operator root, List correlatedVari apply.setSourceB(rowTransform.getSource()); List functionCallList = new ArrayList<>(rowTransform.getFunctionCallList()); for (String correlatedVariable : correlatedVariables) { - FunctionParams params = new FunctionParams(new BaseExpression(correlatedVariable)); + FunctionParams params = + new FunctionParams(Collections.singletonList(new BaseExpression(correlatedVariable))); functionCallList.add( new FunctionCall(FunctionManager.getInstance().getFunction(ARITHMETIC_EXPR), params)); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java index 65cf51a3e1..0929fd48c8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java @@ -262,83 +262,54 @@ private RowStream executeDownsample(Downsample downsample, Table table) throws P Header header = table.getHeader(); if (!header.hasKey()) { throw new InvalidOperatorParameterException( - "downsample operator is not support for row stream without timestamps."); + "downsample operator is not support for row stream without key."); } - List rows = table.getRows(); - long bias = downsample.getKeyRange().getActualBeginKey(); - long endKey = downsample.getKeyRange().getActualEndKey(); - if (downsample.notSetInterval()) { - if (table.getRowSize() <= 0) { - return Table.EMPTY_TABLE; - } - bias = table.getRow(0).getKey(); - endKey = table.getRow(table.getRowSize() - 1).getKey(); + if (downsample.notSetInterval() && table.getRowSize() <= 0) { + return Table.EMPTY_TABLE; } - long precision = downsample.getPrecision(); - long slideDistance = downsample.getSlideDistance(); - // startKey + (n - 1) * slideDistance + precision - 1 >= endKey - long n = (int) (Math.ceil((double) (endKey - bias - precision + 1) / slideDistance) + 1); + long precision = downsample.getPrecision(); + Map, Table> rowTransformMap = new HashMap<>(); List tableList = new ArrayList<>(); boolean firstCol = true; for (FunctionCall functionCall : downsample.getFunctionCallList()) { SetMappingFunction function = (SetMappingFunction) functionCall.getFunction(); FunctionParams params = functionCall.getParams(); - TreeMap> groups = new TreeMap<>(); - if (precision == slideDistance) { - for (Row row : rows) { - long timestamp = row.getKey() - (row.getKey() - bias) % precision; - groups.compute(timestamp, (k, v) -> v == null ? new ArrayList<>() : v).add(row); - } - } else { - HashMap timestamps = new HashMap<>(); - for (long i = 0; i < n; i++) { - timestamps.put(i, bias + i * slideDistance); - } - for (Row row : rows) { - long rowTimestamp = row.getKey(); - for (long i = 0; i < n; i++) { - if (rowTimestamp - timestamps.get(i) >= 0 - && rowTimestamp - timestamps.get(i) < precision) { - groups - .compute(timestamps.get(i), (k, v) -> v == null ? new ArrayList<>() : v) - .add(row); - } - } - } - } + Table functable = RowUtils.preRowTransform(table, rowTransformMap, functionCall); + TreeMap> groups = RowUtils.computeDownsampleGroup(downsample, functable); + // < row> List, Row>> transformedRawRows = new ArrayList<>(); - try { - for (Map.Entry> entry : groups.entrySet()) { - long windowStartKey = entry.getKey(); - long windowEndKey = windowStartKey + precision - 1; - List group = entry.getValue(); - - if (params.isDistinct()) { - if (!isCanUseSetQuantifierFunction(function.getIdentifier())) { - throw new IllegalArgumentException( - "function " + function.getIdentifier() + " can't use DISTINCT"); - } - // min和max无需去重 - if (!function.getIdentifier().equals(Max.MAX) - && !function.getIdentifier().equals(Min.MIN)) { - group = removeDuplicateRows(group); - } + for (Map.Entry> entry : groups.entrySet()) { + long windowStartKey = entry.getKey(); + long windowEndKey = windowStartKey + precision - 1; + List group = entry.getValue(); + + if (params.isDistinct()) { + if (!isCanUseSetQuantifierFunction(function.getIdentifier())) { + throw new IllegalArgumentException( + "function " + function.getIdentifier() + " can't use DISTINCT"); + } + // min和max无需去重 + if (!function.getIdentifier().equals(Max.MAX) + && !function.getIdentifier().equals(Min.MIN)) { + group = removeDuplicateRows(group); } + } - Row row = function.transform(new Table(header, group), params); + try { + Row row = function.transform(new Table(functable.getHeader(), group), params); if (row != null) { transformedRawRows.add(new Pair<>(new Pair<>(windowStartKey, windowEndKey), row)); } + } catch (Exception e) { + throw new PhysicalTaskExecuteFailureException( + "encounter error when execute set mapping function " + function.getIdentifier() + ".", + e); } - } catch (Exception e) { - throw new PhysicalTaskExecuteFailureException( - "encounter error when execute set mapping function " + function.getIdentifier() + ".", - e); } - if (transformedRawRows.size() == 0) { + if (transformedRawRows.isEmpty()) { return Table.EMPTY_TABLE; } @@ -370,66 +341,24 @@ private RowStream executeDownsample(Downsample downsample, Table table) throws P return RowUtils.joinMultipleTablesByKey(tableList); } - private RowStream executeRowTransform(RowTransform rowTransform, Table table) { - List> list = new ArrayList<>(); - rowTransform - .getFunctionCallList() - .forEach( - functionCall -> { - list.add( - new Pair<>( - (RowMappingFunction) functionCall.getFunction(), functionCall.getParams())); - }); - - List rows = new ArrayList<>(); - while (table.hasNext()) { - Row current = table.next(); - List columnList = new ArrayList<>(); - list.forEach( - pair -> { - RowMappingFunction function = pair.k; - FunctionParams params = pair.v; - try { - // 分别计算每个表达式得到相应的结果 - Row column = function.transform(current, params); - if (column != null) { - columnList.add(column); - } - } catch (Exception e) { - try { - throw new PhysicalTaskExecuteFailureException( - "encounter error when execute row mapping function " - + function.getIdentifier() - + ".", - e); - } catch (PhysicalTaskExecuteFailureException ex) { - throw new RuntimeException(ex); - } - } - }); - // 如果计算结果都不为空,将计算结果合并成一行 - if (columnList.size() == list.size()) { - rows.add(combineMultipleColumns(columnList)); - } - } - if (rows.size() == 0) { - return Table.EMPTY_TABLE; - } - Header header = rows.get(0).getHeader(); - return new Table(header, rows); + private RowStream executeRowTransform(RowTransform rowTransform, Table table) + throws PhysicalException { + List functionCallList = rowTransform.getFunctionCallList(); + return RowUtils.calRowTransform(table, functionCallList); } private RowStream executeSetTransform(SetTransform setTransform, Table table) throws PhysicalException { List functionList = setTransform.getFunctionCallList(); - + Map, Table> rowTransformMap = new HashMap<>(); Map, Table> distinctMap = new HashMap<>(); List rows = new ArrayList<>(); for (FunctionCall functionCall : functionList) { SetMappingFunction function = (SetMappingFunction) functionCall.getFunction(); FunctionParams params = functionCall.getParams(); - Table functable = table; + Table functable = RowUtils.preRowTransform(table, rowTransformMap, functionCall); + ; if (setTransform.isDistinct()) { // min和max无需去重 if (!function.getIdentifier().equals(Max.MAX) diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RowTransformLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RowTransformLazyStream.java index 78866b5140..8a3efc0e3e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RowTransformLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RowTransformLazyStream.java @@ -17,25 +17,20 @@ */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; -import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.RowUtils.combineMultipleColumns; - import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; -import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalTaskExecuteFailureException; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.RowUtils; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; -import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; -import cn.edu.tsinghua.iginx.engine.shared.function.RowMappingFunction; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; import cn.edu.tsinghua.iginx.engine.shared.operator.RowTransform; -import cn.edu.tsinghua.iginx.utils.Pair; import java.util.ArrayList; import java.util.List; public class RowTransformLazyStream extends UnaryLazyStream { - private final RowTransform rowTransform; - - private final List> functionAndParamslist; + private final List functionCallList; private Row nextRow; @@ -43,15 +38,18 @@ public class RowTransformLazyStream extends UnaryLazyStream { public RowTransformLazyStream(RowTransform rowTransform, RowStream stream) { super(stream); - this.rowTransform = rowTransform; - this.functionAndParamslist = new ArrayList<>(); + this.functionCallList = new ArrayList<>(); rowTransform .getFunctionCallList() .forEach( functionCall -> { - this.functionAndParamslist.add( - new Pair<>( - (RowMappingFunction) functionCall.getFunction(), functionCall.getParams())); + if (functionCall == null || functionCall.getFunction() == null) { + throw new IllegalArgumentException("function shouldn't be null"); + } + if (functionCall.getFunction().getMappingType() != MappingType.RowMapping) { + throw new IllegalArgumentException("function should be row mapping function"); + } + this.functionCallList.add(functionCall); }); } @@ -68,33 +66,9 @@ public Header getHeader() throws PhysicalException { private Row calculateNext() throws PhysicalException { while (stream.hasNext()) { - List columnList = new ArrayList<>(); - functionAndParamslist.forEach( - pair -> { - RowMappingFunction function = pair.k; - FunctionParams params = pair.v; - Row column = null; - try { - // 分别计算每个表达式得到相应的结果 - column = function.transform(stream.next(), params); - } catch (Exception e) { - try { - throw new PhysicalTaskExecuteFailureException( - "encounter error when execute row mapping function " - + function.getIdentifier() - + ".", - e); - } catch (PhysicalTaskExecuteFailureException ex) { - throw new RuntimeException(ex); - } - } - if (column != null) { - columnList.add(column); - } - }); - // 如果计算结果都不为空,将计算结果合并成一行 - if (columnList.size() == functionAndParamslist.size()) { - return combineMultipleColumns(columnList); + Row row = RowUtils.calRowTransform(stream.next(), functionCallList, false); + if (!row.equals(Row.EMPTY_ROW)) { + return row; } } return null; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SetTransformLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SetTransformLazyStream.java index d302703516..8834954264 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SetTransformLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SetTransformLazyStream.java @@ -39,13 +39,19 @@ public class SetTransformLazyStream extends UnaryLazyStream { private Row nextRow; - private Map, RowStream> distinctStreamMap; // 用于存储distinct处理过的stream,其中null指向原始stream + private final Map, RowStream> rowTransformStreamMap; // 用于存储参数为表达式的stream + + private final Map, RowStream> distinctStreamMap; // 用于存储distinct处理过的stream private boolean hasConsumed = false; public SetTransformLazyStream( - SetTransform setTransform, Map, RowStream> distinctStreamMap) { - super(distinctStreamMap.get(null)); + SetTransform setTransform, + RowStream stream, + Map, RowStream> rowTransformStreamMap, + Map, RowStream> distinctStreamMap) { + super(stream); + this.rowTransformStreamMap = rowTransformStreamMap; this.distinctStreamMap = distinctStreamMap; this.functionCallList = setTransform.getFunctionCallList(); } @@ -77,6 +83,9 @@ private Row calculate() throws PhysicalException { FunctionParams params = functionCall.getParams(); if (params.isDistinct()) { rowList.add(function.transform((Table) distinctStreamMap.get(params.getPaths()), params)); + } else if (functionCall.isNeedPreRowTransform()) { + rowList.add( + function.transform((Table) rowTransformStreamMap.get(params.getPaths()), params)); } else { rowList.add(function.transform((Table) stream, params)); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java index eb2c151449..8672e2236d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java @@ -28,6 +28,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; import cn.edu.tsinghua.iginx.engine.shared.function.SetMappingFunction; import cn.edu.tsinghua.iginx.engine.shared.function.system.Max; import cn.edu.tsinghua.iginx.engine.shared.function.system.Min; @@ -187,7 +188,7 @@ private RowStream executeDownsample(Downsample downsample, RowStream stream) throws PhysicalException { if (!stream.getHeader().hasKey()) { throw new InvalidOperatorParameterException( - "downsample operator is not support for row stream without timestamps."); + "downsample operator is not support for row stream without key."); } return new DownsampleLazyStream(downsample, stream); } @@ -199,12 +200,20 @@ private RowStream executeRowTransform(RowTransform rowTransform, RowStream strea private RowStream executeSetTransform(SetTransform setTransform, RowStream stream) { List functionCallList = setTransform.getFunctionCallList(); Map, RowStream> distinctStreamMap = new HashMap<>(); - distinctStreamMap.put(null, stream); + Map, RowStream> rowTransformStreamMap = new HashMap<>(); - // 如果有distinct,构造不同function对应的stream的Map for (FunctionCall functionCall : functionCallList) { FunctionParams params = functionCall.getParams(); SetMappingFunction function = (SetMappingFunction) functionCall.getFunction(); + RowStream input = stream; + // 如果参数是表达式,构造不同function对应的stream的Map + if (functionCall.isNeedPreRowTransform()) { + List list = FunctionUtils.getArithFunctionCalls(params.getExpressions()); + RowTransform rowTransform = new RowTransform(EmptySource.EMPTY_SOURCE, list); + input = executeRowTransform(rowTransform, input); + rowTransformStreamMap.put(params.getPaths(), input); + } + // 如果有distinct,构造不同function对应的stream的Map if (params.isDistinct()) { if (!isCanUseSetQuantifierFunction(function.getIdentifier())) { throw new IllegalArgumentException( @@ -214,12 +223,13 @@ private RowStream executeSetTransform(SetTransform setTransform, RowStream strea if (!function.getIdentifier().equals(Max.MAX) && !function.getIdentifier().equals(Min.MIN)) { Distinct distinct = new Distinct(EmptySource.EMPTY_SOURCE, params.getPaths()); - distinctStreamMap.put(params.getPaths(), executeDistinct(distinct, stream)); + distinctStreamMap.put(params.getPaths(), executeDistinct(distinct, input)); } } } - return new SetTransformLazyStream(setTransform, distinctStreamMap); + return new SetTransformLazyStream( + setTransform, stream, rowTransformStreamMap, distinctStreamMap); } private RowStream executeMappingTransform(MappingTransform mappingTransform, RowStream stream) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java index abc41d3460..5b17092abb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java @@ -33,8 +33,13 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.utils.DataTypeUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; import java.util.List; +import java.util.Queue; +import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -107,7 +112,10 @@ private static Value calculateFuncExprNative(Row row, FuncExpression funcExpr) RowMappingFunction rowMappingFunction = (RowMappingFunction) function; FunctionParams params = new FunctionParams( - funcExpr.getColumns(), funcExpr.getArgs(), funcExpr.getKvargs(), funcExpr.isDistinct()); + funcExpr.getExpressions(), + funcExpr.getArgs(), + funcExpr.getKvargs(), + funcExpr.isDistinct()); Row ret; try { ret = rowMappingFunction.transform(row, params); @@ -189,7 +197,7 @@ private static Value calculateBinaryExpr(Row row, BinaryExpression binaryExpr) } } - public static Value calculateMultipleExpr(Row row, MultipleExpression multipleExpr) + private static Value calculateMultipleExpr(Row row, MultipleExpression multipleExpr) throws PhysicalException { List children = multipleExpr.getChildren(); List ops = multipleExpr.getOps(); @@ -239,7 +247,7 @@ public static Value calculateMultipleExpr(Row row, MultipleExpression multipleEx return values.get(values.size() - 1); } - public static Value calculateCaseWhenExpr(Row row, CaseWhenExpression caseWhenExpr) + private static Value calculateCaseWhenExpr(Row row, CaseWhenExpression caseWhenExpr) throws PhysicalException { for (int i = 0; i < caseWhenExpr.getConditions().size(); i++) { if (FilterUtils.validate(caseWhenExpr.getConditions().get(i), row)) { @@ -328,44 +336,61 @@ private static Value calculateMod(Value left, Value right) { } public static List getPathFromExpr(Expression expr) { + return getPathFromExprList(Collections.singletonList(expr), false); + } + + public static List getPathFromExprList(List exprList) { + return getPathFromExprList(exprList, false); + } + + public static List getPathFromExprList(List exprList, boolean exceptFunc) { List ret = new ArrayList<>(); - switch (expr.getType()) { - case Constant: - return ret; - case Base: - ret.add(expr.getColumnName()); - return ret; - case Function: - return new ArrayList<>(((FuncExpression) expr).getColumns()); - case Bracket: - return getPathFromExpr(((BracketExpression) expr).getExpression()); - case Unary: - return getPathFromExpr(((UnaryExpression) expr).getExpression()); - case Binary: - List left = getPathFromExpr(((BinaryExpression) expr).getLeftExpression()); - List right = getPathFromExpr(((BinaryExpression) expr).getRightExpression()); - left.addAll(right); - return left; - case Multiple: - for (Expression child : ((MultipleExpression) expr).getChildren()) { - ret.addAll(getPathFromExpr(child)); - } - return ret; - case CaseWhen: - CaseWhenExpression caseWhenExpr = (CaseWhenExpression) expr; - for (Filter filter : caseWhenExpr.getConditions()) { - ret.addAll(FilterUtils.getAllPathsFromFilter(filter)); - } - for (Expression expression : caseWhenExpr.getResults()) { - ret.addAll(getPathFromExpr(expression)); - } - if (caseWhenExpr.getResultElse() != null) { - ret.addAll(getPathFromExpr(caseWhenExpr.getResultElse())); - } - return ret; - default: - throw new IllegalArgumentException(String.format("Unknown expr type: %s", expr.getType())); + Queue queue = new LinkedList<>(exprList); + while (!queue.isEmpty()) { + Expression expr = queue.poll(); + switch (expr.getType()) { + case Base: + ret.add(expr.getColumnName()); + break; + case Unary: + queue.add(((UnaryExpression) expr).getExpression()); + break; + case Function: + if (!exceptFunc) { + queue.addAll(((FuncExpression) expr).getExpressions()); + } + break; + case Bracket: + queue.add(((BracketExpression) expr).getExpression()); + break; + case Binary: + queue.add(((BinaryExpression) expr).getLeftExpression()); + queue.add(((BinaryExpression) expr).getRightExpression()); + break; + case Multiple: + queue.addAll(((MultipleExpression) expr).getChildren()); + break; + case CaseWhen: + CaseWhenExpression caseWhenExpr = (CaseWhenExpression) expr; + Set pathList = new HashSet<>(); + for (Filter filter : caseWhenExpr.getConditions()) { + pathList.addAll(FilterUtils.getAllPathsFromFilter(filter)); + } + ret.addAll(pathList); + queue.addAll(caseWhenExpr.getResults()); + if (caseWhenExpr.getResultElse() != null) { + queue.add(caseWhenExpr.getResultElse()); + } + break; + case Constant: + case FromValue: + break; + default: + throw new IllegalArgumentException( + String.format("Unknown expr type: %s", expr.getType())); + } } + return ret; } /** @@ -748,12 +773,16 @@ public static Expression copy(Expression expression) { case Constant: return new ConstantExpression(((ConstantExpression) expression).getValue()); case Base: - return new BaseExpression(((BaseExpression) expression).getColumnName()); + return new BaseExpression(expression.getColumnName()); case Function: FuncExpression funcExpression = (FuncExpression) expression; + List newExpressions = new ArrayList<>(funcExpression.getExpressions().size()); + for (Expression expr : funcExpression.getExpressions()) { + newExpressions.add(ExprUtils.copy(expr)); + } return new FuncExpression( funcExpression.getFuncName(), - new ArrayList<>(funcExpression.getColumns()), + newExpressions, new ArrayList<>(funcExpression.getArgs()), new HashMap<>(funcExpression.getKvargs()), funcExpression.isDistinct()); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java index bccab08b24..0ffcf646a8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java @@ -34,13 +34,16 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; import cn.edu.tsinghua.iginx.engine.shared.function.MappingFunction; +import cn.edu.tsinghua.iginx.engine.shared.function.RowMappingFunction; import cn.edu.tsinghua.iginx.engine.shared.function.SetMappingFunction; import cn.edu.tsinghua.iginx.engine.shared.function.system.First; import cn.edu.tsinghua.iginx.engine.shared.function.system.Last; import cn.edu.tsinghua.iginx.engine.shared.function.system.Max; import cn.edu.tsinghua.iginx.engine.shared.function.system.Min; import cn.edu.tsinghua.iginx.engine.shared.function.system.utils.ValueUtils; +import cn.edu.tsinghua.iginx.engine.shared.operator.Downsample; import cn.edu.tsinghua.iginx.engine.shared.operator.GroupBy; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.thrift.DataType; @@ -547,6 +550,47 @@ public static boolean equalOnSpecificPaths( return true; } + public static TreeMap> computeDownsampleGroup( + Downsample downsample, Table table) { + List rows = table.getRows(); + long bias = downsample.getKeyRange().getActualBeginKey(); + long endKey = downsample.getKeyRange().getActualEndKey(); + if (downsample.notSetInterval()) { + if (table.getRowSize() <= 0) { + return new TreeMap<>(); + } + bias = table.getRow(0).getKey(); + endKey = table.getRow(table.getRowSize() - 1).getKey(); + } + long precision = downsample.getPrecision(); + long slideDistance = downsample.getSlideDistance(); + // startKey + (n - 1) * slideDistance + precision - 1 >= endKey + long n = (int) (Math.ceil((double) (endKey - bias - precision + 1) / slideDistance) + 1); + + TreeMap> groups = new TreeMap<>(); + if (precision == slideDistance) { + for (Row row : rows) { + long timestamp = row.getKey() - (row.getKey() - bias) % precision; + groups.compute(timestamp, (k, v) -> v == null ? new ArrayList<>() : v).add(row); + } + } else { + HashMap timestamps = new HashMap<>(); + for (long i = 0; i < n; i++) { + timestamps.put(i, bias + i * slideDistance); + } + for (Row row : rows) { + long rowTimestamp = row.getKey(); + for (long i = 0; i < n; i++) { + if (rowTimestamp - timestamps.get(i) >= 0 + && rowTimestamp - timestamps.get(i) < precision) { + groups.compute(timestamps.get(i), (k, v) -> v == null ? new ArrayList<>() : v).add(row); + } + } + } + } + return groups; + } + public static List cacheGroupByResult(GroupBy groupBy, Table table) throws PhysicalException { List cols = groupBy.getGroupByCols(); @@ -612,9 +656,19 @@ public static void seqApplyFunc( SetMappingFunction function = (SetMappingFunction) functionCall.getFunction(); FunctionParams params = functionCall.getParams(); + Header tmpHeader = header; boolean hasAddedFields = false; for (Map.Entry> entry : groups.entrySet()) { List group = entry.getValue(); + List transformedGroup; + if (functionCall.isNeedPreRowTransform()) { + List list = FunctionUtils.getArithFunctionCalls(params.getExpressions()); + Table tmp = RowUtils.calRowTransform(new Table(header, group), list); + tmpHeader = tmp.getHeader(); + transformedGroup = tmp.getRows(); + } else { + transformedGroup = group; + } if (params.isDistinct()) { if (!isCanUseSetQuantifierFunction(function.getIdentifier())) { @@ -624,12 +678,12 @@ public static void seqApplyFunc( // min和max无需去重 if (!function.getIdentifier().equals(Max.MAX) && !function.getIdentifier().equals(Min.MIN)) { - group = removeDuplicateRows(group); + transformedGroup = removeDuplicateRows(transformedGroup); } } try { - Row row = function.transform(new Table(header, group), params); + Row row = function.transform(new Table(tmpHeader, transformedGroup), params); if (row != null) { entry.getKey().getFuncRet().addAll(Arrays.asList(row.getValues())); if (!hasAddedFields) { @@ -669,6 +723,22 @@ private static void parallelApplyFunc( .forEach( entry -> { List group = entry.getValue(); + Header tmpHeader = header; + List transformedGroup = new ArrayList<>(); + if (functionCall.isNeedPreRowTransform()) { + List list = + FunctionUtils.getArithFunctionCalls(params.getExpressions()); + try { + Table tmp = RowUtils.calRowTransform(new Table(header, group), list); + tmpHeader = tmp.getHeader(); + transformedGroup.addAll(tmp.getRows()); + } catch (PhysicalException e) { + LOGGER.error( + "encounter error when execute set mapping function parameters"); + } + } else { + transformedGroup = group; + } if (params.isDistinct()) { if (!isCanUseSetQuantifierFunction(function.getIdentifier())) { @@ -679,15 +749,17 @@ private static void parallelApplyFunc( if (!function.getIdentifier().equals(Max.MAX) && !function.getIdentifier().equals(Min.MIN)) { try { - group = removeDuplicateRows(group); + transformedGroup = removeDuplicateRows(transformedGroup); } catch (PhysicalException e) { - throw new RuntimeException(e); + LOGGER.error( + "encounter error when execute distinct in set mapping function"); } } } try { - Row row = function.transform(new Table(header, group), params); + Row row = + function.transform(new Table(tmpHeader, transformedGroup), params); if (row != null) { entry.getKey().getFuncRet().addAll(Arrays.asList(row.getValues())); if (hasAddedFields.compareAndSet(false, true)) { @@ -947,7 +1019,11 @@ public static Table pathUnionMultipleTables(List
tableList) throws Physic } else { // PriorityQueue中的Pair,k为行,v为表格在tableList中的索引(即记录该行所属的table) PriorityQueue> queue = - new PriorityQueue<>(Comparator.comparingLong(p -> p.k.getKey())); + new PriorityQueue<>( + (p1, p2) -> + p1.k.getKey() == p2.k.getKey() + ? Integer.compare(p1.v, p2.v) + : Long.compare(p1.k.getKey(), p2.k.getKey())); // 初始化优先队列 for (int i = 0; i < tableList.size(); i++) { @@ -1105,6 +1181,102 @@ public static Table joinMultipleTablesByKey(List
tableList) throws Physic return new Table(newHeader, newRows); } + public static Row calRowTransform(Row row, List functionCallList) + throws PhysicalException { + return calRowTransform(row, functionCallList, true); + } + + /** + * 计算单行RowTransform的结果 + * + * @param row 输入行 + * @param functionCallList RowTransform的FunctionCall列表 + * @param check 是否需要检查FunctionCall列表是否全为RowTransform + * @return 计算结果输出行 + * @throws PhysicalException 当FunctionCall列表中有非RowTransform时,抛出异常;当执行RowTransform时出错时,抛出异常 + */ + public static Row calRowTransform(Row row, List functionCallList, boolean check) + throws PhysicalException { + if (check) { + for (FunctionCall functionCall : functionCallList) { + if (!(functionCall.getFunction() instanceof RowMappingFunction)) { + throw new PhysicalTaskExecuteFailureException( + "function: " + + functionCall.getFunction().getIdentifier() + + " is not a row mapping function"); + } + } + } + + Map, Row> rowTransformMap = new HashMap<>(); + List columnList = new ArrayList<>(); + for (FunctionCall functionCall : functionCallList) { + RowMappingFunction function = (RowMappingFunction) functionCall.getFunction(); + FunctionParams params = functionCall.getParams(); + + Row tmp = row; + if (functionCall.isNeedPreRowTransform()) { + List list = FunctionUtils.getFunctionCalls(params.getExpressions()); + if (rowTransformMap.containsKey(params.getPaths())) { + tmp = rowTransformMap.get(params.getPaths()); + } else { + tmp = calRowTransform(row, list); + rowTransformMap.put(params.getPaths(), tmp); + } + } + + try { + // 分别计算每个表达式得到相应的结果 + Row column = function.transform(tmp, params); + if (column != null) { + columnList.add(column); + } + } catch (Exception e) { + throw new PhysicalTaskExecuteFailureException( + "encounter error when execute row mapping function " + function.getIdentifier() + ".", + e); + } + } + // 如果存在functionCall计算结果为空,抛出异常 + if (columnList.size() != functionCallList.size()) { + throw new PhysicalTaskExecuteFailureException( + "encounter error when execute row mapping functions: " + functionCallList); + } + return combineMultipleColumns(columnList); + } + + /** + * 计算表格RowTransform的结果 + * + * @param table 输入表 + * @param functionCallList RowTransform的FunctionCall列表 + * @return 计算结果输出表格 + * @throws PhysicalException 当FunctionCall列表中有非RowTransform时,抛出异常;当执行RowTransform时出错时,抛出异常 + */ + public static Table calRowTransform(Table table, List functionCallList) + throws PhysicalException { + for (FunctionCall functionCall : functionCallList) { + if (!(functionCall.getFunction() instanceof RowMappingFunction)) { + throw new PhysicalTaskExecuteFailureException( + "function: " + + functionCall.getFunction().getIdentifier() + + " is not a row mapping function"); + } + } + List rows = new ArrayList<>(); + while (table.hasNext()) { + Row current = table.next(); + rows.add(calRowTransform(current, functionCallList, false)); + } + // 重置table的迭代器,以便下次使用 + table.reset(); + if (rows.isEmpty()) { + return Table.EMPTY_TABLE; + } + Header header = rows.get(0).getHeader(); + return new Table(header, rows); + } + /** * 计算多个MappingTransform的结果 * @@ -1116,6 +1288,8 @@ public static Table joinMultipleTablesByKey(List
tableList) throws Physic public static Table calMappingTransform(Table table, List functionCallList) throws PhysicalException { List
tableList = new ArrayList<>(); + Map, Table> rowTransformMap = new HashMap<>(); + for (FunctionCall functionCall : functionCallList) { FunctionParams params = functionCall.getParams(); if (!(functionCall.getFunction() instanceof MappingFunction)) { @@ -1125,9 +1299,10 @@ public static Table calMappingTransform(Table table, List function + " is not a mapping function"); } MappingFunction function = (MappingFunction) functionCall.getFunction(); + Table input = preRowTransform(table, rowTransformMap, functionCall); try { - Table functable = (Table) function.transform(table, params); + Table functable = (Table) function.transform(input, params); if (functable != null) { tableList.add(functable); } @@ -1157,4 +1332,22 @@ public static Table calMappingTransform(Table table, List function return RowUtils.joinMultipleTablesByOrdinal(tableList); } } + + public static Table preRowTransform( + Table table, Map, Table> rowTransformMap, FunctionCall functionCall) + throws PhysicalException { + if (!functionCall.isNeedPreRowTransform()) { + return table; + } + Table ret; + FunctionParams params = functionCall.getParams(); + List list = FunctionUtils.getArithFunctionCalls(params.getExpressions()); + if (rowTransformMap.containsKey(params.getPaths())) { + ret = rowTransformMap.get(params.getPaths()); + } else { + ret = RowUtils.calRowTransform(table, list); + rowTransformMap.put(params.getPaths(), ret); + } + return ret; + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java index 14fc68c9ea..88e364bcf1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java @@ -27,35 +27,35 @@ public class FuncExpression implements Expression { private final String funcName; - private final List columns; + private final List expressions; private final List args; private final Map kvargs; private final boolean isDistinct; private final boolean isPyUDF; private String alias; - public FuncExpression(String funcName, List columns) { - this(funcName, columns, new ArrayList<>(), new HashMap<>(), "", false); + public FuncExpression(String funcName, List expressions) { + this(funcName, expressions, new ArrayList<>(), new HashMap<>(), "", false); } public FuncExpression( String funcName, - List columns, + List expressions, List args, Map kvargs, boolean isDistinct) { - this(funcName, columns, args, kvargs, "", isDistinct); + this(funcName, expressions, args, kvargs, "", isDistinct); } public FuncExpression( String funcName, - List columns, + List expressions, List args, Map kvargs, String alias, boolean isDistinct) { this.funcName = funcName; - this.columns = columns; + this.expressions = expressions; this.args = args; this.kvargs = kvargs; this.alias = alias; @@ -67,8 +67,8 @@ public String getFuncName() { return funcName; } - public List getColumns() { - return columns; + public List getExpressions() { + return expressions; } public List getArgs() { @@ -89,12 +89,17 @@ public boolean isPyUDF() { @Override public String getColumnName() { - String columnName = isPyUDF ? funcName : funcName.toLowerCase(); - columnName += "("; + StringBuilder columnName = new StringBuilder(isPyUDF ? funcName : funcName.toLowerCase()); + columnName.append("("); if (isDistinct) { - columnName += "distinct "; + columnName.append("distinct "); } - return columnName + String.join(", ", columns) + ")"; + for (Expression expression : expressions) { + columnName.append(expression.getColumnName()).append(", "); + } + columnName.setLength(columnName.length() - 2); + columnName.append(")"); + return columnName.toString(); } @Override @@ -102,6 +107,7 @@ public ExpressionType getType() { return ExpressionType.Function; } + @Override public boolean hasAlias() { return alias != null && !alias.isEmpty(); } @@ -119,5 +125,6 @@ public void setAlias(String alias) { @Override public void accept(ExpressionVisitor visitor) { visitor.visit(this); + expressions.forEach(e -> e.accept(visitor)); } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionCall.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionCall.java index 0713e56422..99a89bbf77 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionCall.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionCall.java @@ -17,6 +17,10 @@ */ package cn.edu.tsinghua.iginx.engine.shared.function; +import static cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr.ARITHMETIC_EXPR; + +import cn.edu.tsinghua.iginx.engine.shared.expr.BaseExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr; import cn.edu.tsinghua.iginx.engine.shared.function.udf.UDAF; import cn.edu.tsinghua.iginx.engine.shared.function.udf.UDSF; @@ -28,9 +32,23 @@ public class FunctionCall { private final FunctionParams params; + private final boolean needPreRowTransform; + public FunctionCall(Function function, FunctionParams params) { this.function = function; this.params = params; + + // init needPreRowTransform + boolean needPreRowTransform = false; + if (!function.getIdentifier().equalsIgnoreCase(ARITHMETIC_EXPR)) { + for (Expression expression : params.getExpressions()) { + if (!(expression instanceof BaseExpression)) { + needPreRowTransform = true; + break; + } + } + } + this.needPreRowTransform = needPreRowTransform; } public Function getFunction() { @@ -41,6 +59,10 @@ public FunctionParams getParams() { return params; } + public boolean isNeedPreRowTransform() { + return needPreRowTransform; + } + public FunctionCall copy() { return new FunctionCall(function, params.copy()); } @@ -54,7 +76,9 @@ public String toString() { private String getFuncName() { if (function instanceof ArithmeticExpr) { - return params.getExpr().getColumnName(); + if (params.getExpressions().size() == 1) { + return params.getExpressions().get(0).getColumnName(); + } } else if (function.getFunctionType() == FunctionType.UDF) { if (function instanceof UDAF) { return ((UDAF) function).getFunctionName(); @@ -71,7 +95,7 @@ private String getFuncName() { public String getFunctionStr() { if (function instanceof ArithmeticExpr) { - return params.getExpr().getColumnName(); + return params.getExpressions().get(0).getColumnName(); } return String.format( diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java index 0fa0bf2f01..510db84e39 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java @@ -18,54 +18,59 @@ package cn.edu.tsinghua.iginx.engine.shared.function; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; public class FunctionParams { private final List paths; + private final List expressions; + private final List args; private final Map kwargs; - private Expression expr; - private boolean isDistinct; - public FunctionParams(List paths) { - this(paths, null, null, null, false); - } - - public FunctionParams(Expression expr) { - this(null, null, null, expr, false); - } - - public FunctionParams(List paths, List args, Map kwargs) { - this(paths, args, kwargs, null, false); + public FunctionParams(List expressions) { + this(expressions, null, null, false); } public FunctionParams( - List paths, List args, Map kwargs, boolean isDistinct) { - this(paths, args, kwargs, null, isDistinct); + List expressions, List args, Map kwargs) { + this(expressions, args, kwargs, false); } public FunctionParams( - List paths, + List expressions, List args, Map kwargs, - Expression expr, boolean isDistinct) { - this.paths = paths; + this.paths = expressions.stream().map(Expression::getColumnName).collect(Collectors.toList()); + this.expressions = expressions; this.args = args; this.kwargs = kwargs; - this.expr = expr; this.isDistinct = isDistinct; } + public List getExpressions() { + return expressions; + } + + public Expression getExpression(int i) { + return expressions.get(i); + } + + public void setExpression(int i, Expression expression) { + expressions.set(i, expression); + } + public List getPaths() { return paths; } @@ -78,14 +83,6 @@ public Map getKwargs() { return kwargs; } - public Expression getExpr() { - return expr; - } - - public void setExpr(Expression expr) { - this.expr = expr; - } - public boolean isDistinct() { return isDistinct; } @@ -95,18 +92,18 @@ public void setDistinct(boolean distinct) { } protected FunctionParams copy() { - List newPaths = null; - if (paths != null && !paths.isEmpty()) { - newPaths = new ArrayList<>(paths); + List newExpressions = new ArrayList<>(expressions.size()); + for (Expression expression : expressions) { + newExpressions.add(ExprUtils.copy(expression)); } - Map newKvargs = null; + Map newKwargs = null; if (kwargs != null && !kwargs.isEmpty()) { - newKvargs = new HashMap<>(kwargs); + newKwargs = new HashMap<>(kwargs); } List newArgs = null; if (args != null && !args.isEmpty()) { newArgs = new ArrayList<>(args); } - return new FunctionParams(newPaths, newArgs, newKvargs, expr, isDistinct); + return new FunctionParams(newExpressions, newArgs, newKwargs, isDistinct); } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java index d7c378b990..f2fe12da62 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java @@ -18,6 +18,7 @@ package cn.edu.tsinghua.iginx.engine.shared.function; +import static cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr.ARITHMETIC_EXPR; import static cn.edu.tsinghua.iginx.utils.DataTypeUtils.isWholeNumber; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; @@ -25,6 +26,8 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; +import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; import cn.edu.tsinghua.iginx.engine.shared.function.manager.FunctionManager; import cn.edu.tsinghua.iginx.engine.shared.function.system.First; import cn.edu.tsinghua.iginx.engine.shared.function.system.Last; @@ -296,4 +299,63 @@ public static List getFunctionsFullPath(Operator operator) { return new ArrayList<>(); } } + + public static MappingType getFunctionMappingType(String identifier) { + if (sysRowToRowFunctionSet.contains(identifier.toLowerCase())) { + return MappingType.RowMapping; + } else if (sysSetToRowFunctionSet.contains(identifier.toLowerCase())) { + return MappingType.SetMapping; + } else if (sysSetToSetFunctionSet.contains(identifier.toLowerCase())) { + return MappingType.Mapping; + } else { + initFunctionManager(); + Function function = functionManager.getFunction(identifier); + switch (function.getIdentifier()) { + case "py_udtf": + return MappingType.RowMapping; + case "py_udaf": + return MappingType.SetMapping; + case "py_udsf": + return MappingType.Mapping; + default: + throw new IllegalArgumentException( + String.format("unexpected py_udf type for %s.", function.getIdentifier())); + } + } + } + + public static List getFunctionCalls(List expressions) { + initFunctionManager(); + List list = new ArrayList<>(); + for (Expression expression : expressions) { + if (expression instanceof FuncExpression) { + FuncExpression funcExpr = (FuncExpression) expression; + if (isRowToRowFunction(funcExpr.getFuncName())) { + list.add( + new FunctionCall( + functionManager.getFunction(funcExpr.getFuncName()), + new FunctionParams( + funcExpr.getExpressions(), funcExpr.getArgs(), funcExpr.getKvargs()))); + continue; + } + } + list.add( + new FunctionCall( + functionManager.getFunction(ARITHMETIC_EXPR), + new FunctionParams(new ArrayList<>(Collections.singletonList(expression))))); + } + return list; + } + + public static List getArithFunctionCalls(List expressions) { + initFunctionManager(); + List list = new ArrayList<>(expressions.size()); + for (Expression expression : expressions) { + list.add( + new FunctionCall( + functionManager.getFunction(ARITHMETIC_EXPR), + new FunctionParams(new ArrayList<>(Collections.singletonList(expression))))); + } + return list; + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/ArithmeticExpr.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/ArithmeticExpr.java index 6580c3daa1..f830eef78f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/ArithmeticExpr.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/ArithmeticExpr.java @@ -59,10 +59,10 @@ public String getIdentifier() { @Override public Row transform(Row row, FunctionParams params) throws Exception { - if (params.getExpr() == null) { + if (params.getExpressions().size() != 1) { throw new IllegalArgumentException("unexpected params for arithmetic_expr."); } - Expression expr = params.getExpr(); + Expression expr = params.getExpression(0); Value ret = ExprUtils.calculateExpr(row, expr); if (ret == null) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Ratio.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Ratio.java index 42e6ccbf5b..43e6967679 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Ratio.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Ratio.java @@ -59,7 +59,7 @@ public String getIdentifier() { @Override public Row transform(Row row, FunctionParams params) throws Exception { - if (params.getPaths() == null || params.getPaths().size() != 2) { + if (params.getPaths().size() != 2) { throw new IllegalArgumentException("unexpected params for ratio."); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SetTransform.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SetTransform.java index 336d018a57..6ce840916d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SetTransform.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SetTransform.java @@ -111,6 +111,6 @@ public boolean equals(Object object) { return false; } SetTransform that = (SetTransform) object; - return functionCallList.equals(that.functionCallList); + return functionCallList.equals(that.functionCallList); // todo } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index 9c5b59e32c..7b002d28a5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -25,6 +25,7 @@ import static cn.edu.tsinghua.iginx.sql.statement.select.SelectStatement.markJoinCount; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; +import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; import cn.edu.tsinghua.iginx.engine.shared.KeyRange; import cn.edu.tsinghua.iginx.engine.shared.data.Value; @@ -951,10 +952,6 @@ private void parseSelectPaths(SelectClauseContext ctx, UnarySelectStatement sele } }); } - - if (!selectStatement.getFuncTypeSet().isEmpty()) { - selectStatement.setHasFunc(true); - } } private void parseSelectPathsWithValue2Meta( @@ -980,7 +977,8 @@ private List parseExpression( private List parseExpression( ExpressionContext ctx, UnarySelectStatement selectStatement, boolean isFromSelectClause) { if (ctx.function() != null) { - return Collections.singletonList(parseFuncExpression(ctx, selectStatement)); + return Collections.singletonList( + parseFuncExpression(ctx, selectStatement, isFromSelectClause)); } if (ctx.path() != null && !ctx.path().isEmpty()) { return Collections.singletonList( @@ -1058,7 +1056,7 @@ private List parseExpression( } private Expression parseFuncExpression( - ExpressionContext ctx, UnarySelectStatement selectStatement) { + ExpressionContext ctx, UnarySelectStatement selectStatement, boolean isFromSelectClause) { FunctionContext funcCtx = ctx.function(); String funcName = funcCtx.functionName().getText(); @@ -1073,36 +1071,45 @@ private Expression parseFuncExpression( } } - List columns = new ArrayList<>(); - for (PathContext pathContext : funcCtx.path()) { - columns.add(parsePath(pathContext)); + List columns = new ArrayList<>(); + for (ExpressionContext exprCtx : funcCtx.expression()) { + if (exprCtx.subquery() != null) { + throw new SQLParserException("Subquery is not supported to be used in function"); + } + columns.addAll(parseExpression(exprCtx, selectStatement, isFromSelectClause)); } List args = new ArrayList<>(); - Map kvargs = new HashMap<>(); + ListIterator iter = columns.listIterator(columns.size()); + while (iter.hasPrevious()) { + Expression expression = iter.previous(); + if (!ExpressionUtils.isConstantArithmeticExpr(expression)) { + break; + } + Value value; + try { + value = ExprUtils.calculateExpr(null, expression); + } catch (PhysicalException e) { + throw new SQLParserException( + String.format( + "fail to calculate const arithmetic expression: %s, cause by: %s", + expression.getColumnName(), e)); + } + args.add(value.getValue()); + iter.remove(); + } + + Map kwargs = new HashMap<>(); for (ParamContext paramContext : funcCtx.param()) { Object val = parseValue(paramContext.value); if (paramContext.key != null) { String key = paramContext.key.getText(); - kvargs.put(key, val); + kwargs.put(key, val); } else { args.add(val); } } - - // 如果查询语句中FROM子句只有一个部分且FROM一个前缀,则SELECT子句中的path只用写出后缀 - if (selectStatement.isFromSinglePath()) { - String fromPath = selectStatement.getFromPart(0).getPrefix(); - - List newColumns = new ArrayList<>(); - for (String column : columns) { - newColumns.add(fromPath + SQLConstant.DOT + column); - } - columns = newColumns; - } - FuncExpression expression = new FuncExpression(funcName, columns, args, kvargs, isDistinct); - selectStatement.setSelectedFuncsAndExpression(funcName, expression); - return expression; + return new FuncExpression(funcName, columns, args, kwargs, isDistinct); } private Expression parseBaseExpression( @@ -1303,7 +1310,7 @@ private void parseGroupByClause(GroupByClauseContext ctx, UnarySelectStatement s }); selectStatement - .getBaseExpressionList() + .getBaseExpressionList(true) .forEach( expr -> { if (!selectStatement.getGroupByPaths().contains(expr.getPathName())) { @@ -1744,7 +1751,6 @@ private FilterData parseScalarSubQueryComparisonFilter( Value value = new Value(parseValue(ctx.constant())); String path = expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); filterData.setFilter(new ValueFilter(path, op, value)); - return filterData; } else { String pathA = parsePath(ctx.path()); if (statement.isFromSinglePath() && !statement.isSubQuery()) { @@ -1757,8 +1763,8 @@ private FilterData parseScalarSubQueryComparisonFilter( String pathB = expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); filterData.setFilter(new PathFilter(pathA, op, pathB)); - return filterData; } + return filterData; } private FilterData parseTwoScalarSubQueryComparisonFilter( @@ -1997,9 +2003,9 @@ private List getPathsFromPredicate( private static class FilterData { private Filter filter; - private List pathList; + private final List pathList; - private List subQueryFromPartList; + private final List subQueryFromPartList; public FilterData() { this.filter = null; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java index 86c931b69f..350de74b7d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java @@ -26,13 +26,13 @@ import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils; import cn.edu.tsinghua.iginx.engine.shared.expr.*; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; import cn.edu.tsinghua.iginx.engine.shared.operator.MarkJoin; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.type.FuncType; import cn.edu.tsinghua.iginx.sql.exception.SQLParserException; import cn.edu.tsinghua.iginx.sql.statement.StatementType; import cn.edu.tsinghua.iginx.sql.statement.frompart.FromPart; @@ -46,10 +46,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; -import java.util.Map; -import java.util.Queue; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; @@ -97,7 +94,7 @@ public UnarySelectStatement(List paths, AggregateType aggregateType) { this(false); if (aggregateType == AggregateType.LAST || aggregateType == AggregateType.FIRST) { - setQueryType(QueryType.LastFirstQuery); + setQueryType(QueryType.MappingQuery); } else { setQueryType(QueryType.AggregateQuery); } @@ -105,12 +102,12 @@ public UnarySelectStatement(List paths, AggregateType aggregateType) { String func = aggregateType.toString().toLowerCase(); paths.forEach( path -> { - FuncExpression funcExpression = new FuncExpression(func, Collections.singletonList(path)); + BaseExpression column = new BaseExpression(path); + FuncExpression funcExpression = + new FuncExpression(func, Collections.singletonList(column)); addSelectClauseExpression(funcExpression); - setSelectedFuncsAndExpression(func, funcExpression); + this.selectClause.addPath(path); }); - - setHasFunc(true); } public UnarySelectStatement( @@ -139,13 +136,13 @@ public UnarySelectStatement( String func = aggregateType.toString().toLowerCase(); paths.forEach( path -> { - FuncExpression funcExpression = new FuncExpression(func, Collections.singletonList(path)); + BaseExpression column = new BaseExpression(path); + FuncExpression funcExpression = + new FuncExpression(func, Collections.singletonList(column)); addSelectClauseExpression(funcExpression); - setSelectedFuncsAndExpression(func, funcExpression); + this.selectClause.addPath(path); }); - setHasFunc(true); - setPrecision(precision); setSlideDistance(slideDistance); setStartKey(startKey); @@ -170,14 +167,6 @@ private void setFromSession(long startKey, long endKey) { setHasValueFilter(true); } - public boolean hasFunc() { - return selectClause.hasFunc(); - } - - public void setHasFunc(boolean hasFunc) { - selectClause.setHasFunc(hasFunc); - } - public boolean isDistinct() { return selectClause.isDistinct(); } @@ -226,97 +215,33 @@ public void setHasValueToSelectedPath(boolean hasValueToSelectedPath) { selectClause.setHasValueToSelectedPath(hasValueToSelectedPath); } - public Map> getFuncExpressionMap() { - return selectClause.getFuncExpressionMap(); + public boolean isLastFirst() { + return getQueryType().equals(QueryType.MappingQuery) && selectClause.isLastFirst(); + } + + public List getTargetTypeFuncExprList(MappingType mappingType) { + return selectClause.getTargetTypeFuncExprList(mappingType); } - public void addFuncExpressionMap(String func, List expressions) { - selectClause.addFuncExpressionMap(func, expressions); + public List getBaseExpressionList() { + return getBaseExpressionList(false); } /** - * 获取ExpressionList中获取所有的BaseExpression,包括嵌套的BaseExpression + * 获取ExpressionList中获取所有的BaseExpression * + * @param exceptFunc 是否不包括FuncExpression参数中的BaseExpression * @return BaseExpression列表 */ - public List getBaseExpressionList() { - List baseExpressionList = new ArrayList<>(); - Queue queue = new LinkedList<>(getExpressions()); - while (!queue.isEmpty()) { - Expression expression = queue.poll(); - switch (expression.getType()) { - case Base: - baseExpressionList.add((BaseExpression) expression); - break; - case Unary: - queue.add(((UnaryExpression) expression).getExpression()); - break; - case Function: - FuncExpression funcExpression = (FuncExpression) expression; - if (FunctionUtils.isRowToRowFunction(funcExpression.getFuncName())) { - for (String column : funcExpression.getColumns()) { - baseExpressionList.add(new BaseExpression(column)); - } - } - break; - case Bracket: - queue.add(((BracketExpression) expression).getExpression()); - break; - case Binary: - queue.add(((BinaryExpression) expression).getLeftExpression()); - queue.add(((BinaryExpression) expression).getRightExpression()); - break; - case Multiple: - queue.addAll(((MultipleExpression) expression).getChildren()); - break; - case CaseWhen: - CaseWhenExpression caseWhenExpr = (CaseWhenExpression) expression; - Set pathList = new HashSet<>(); - for (Filter filter : caseWhenExpr.getConditions()) { - pathList.addAll(FilterUtils.getAllPathsFromFilter(filter)); - } - for (String path : pathList) { - baseExpressionList.add(new BaseExpression(path)); - } - queue.addAll(caseWhenExpr.getResults()); - if (caseWhenExpr.getResultElse() != null) { - queue.add(caseWhenExpr.getResultElse()); - } - } + public List getBaseExpressionList(boolean exceptFunc) { + List paths = ExprUtils.getPathFromExprList(getExpressions(), exceptFunc); + List baseExpressionList = new ArrayList<>(paths.size()); + for (String path : paths) { + baseExpressionList.add(new BaseExpression(path)); } return baseExpressionList; } - public void setSelectedFuncsAndExpression(String func, FuncExpression expression) { - setSelectedFuncsAndExpression(func, expression, true); - } - - public void setSelectedFuncsAndExpression( - String func, FuncExpression expression, boolean addToPathSet) { - func = func.trim(); - - List expressions = getFuncExpressionMap().get(func); - if (expressions == null) { - expressions = new ArrayList<>(); - expressions.add(expression); - addFuncExpressionMap(func, expressions); - } else { - expressions.add(expression); - } - - if (addToPathSet) { - this.selectClause.addAllPath(expression.getColumns()); - } - } - - public Set getFuncTypeSet() { - return selectClause.getFuncTypeSet(); - } - - public boolean containsFuncType(FuncType funcType) { - return selectClause.getFuncTypeSet().contains(funcType); - } - @Override public Set getPathSet() { Set pathSet = new HashSet<>(); @@ -363,10 +288,6 @@ public void setFromParts(List fromParts) { fromClause.setFromParts(fromParts); } - public void addFromPart(FromPart fromPart) { - fromClause.addFromPart(fromPart); - } - public List getWhereSubQueryParts() { return whereClause.getWhereSubQueryParts(); } @@ -537,11 +458,7 @@ public boolean needRowTransform() { @Override public List calculatePrefixSet() { Set prefixSet = new HashSet<>(); - getFromParts() - .forEach( - fromPart -> { - prefixSet.addAll(fromPart.getPatterns()); - }); + getFromParts().forEach(fromPart -> prefixSet.addAll(fromPart.getPatterns())); getExpressions() .forEach( expression -> { @@ -700,59 +617,140 @@ public boolean isFromSinglePath() { } public void checkQueryType() { + Set typeList = new HashSet<>(); + for (Expression expression : getExpressions()) { + typeList.add(getExprMappingType(expression)); + } + typeList.remove(null); + if (hasGroupBy()) { - setQueryType(QueryType.GroupByQuery); - } else if (hasFunc()) { - if (ExprUtils.hasCaseWhen(selectClause.getExpressions()) - || FuncType.isRow2RowFunc(getFuncTypeSet())) { - setQueryType(QueryType.SimpleQuery); - } else if (hasDownsample()) { - setQueryType(QueryType.DownSampleQuery); - } else { - setQueryType(QueryType.AggregateQuery); + if (typeList.contains(MappingType.Mapping)) { + throw new SQLParserException("Group by can not use SetToSet functions."); + } else if (typeList.contains(MappingType.RowMapping) + && !getTargetTypeFuncExprList(MappingType.RowMapping).isEmpty()) { + throw new SQLParserException("Group by can not use RowToRow functions."); } - } else { + setQueryType(QueryType.GroupByQuery); + return; + } + + if (typeList.size() > 1) { + throw new SQLParserException( + "SetToSet/SetToRow/RowToRow functions can not be mixed in selected expressions."); + } + if (typeList.isEmpty()) { if (hasDownsample()) { throw new SQLParserException( "Downsample clause cannot be used without aggregate function."); - } else { - setQueryType(QueryType.SimpleQuery); - } - } - if (getQueryType() == QueryType.AggregateQuery) { - if (containsFuncType(FuncType.First) || containsFuncType(FuncType.Last)) { - setQueryType(QueryType.LastFirstQuery); } + setQueryType(QueryType.SimpleQuery); + return; } - // calculate func type count - int[] cntArr = new int[3]; - for (FuncType type : getFuncTypeSet()) { - if (FuncType.isRow2RowFunc(type)) { - cntArr[0]++; - } else if (FuncType.isSet2SetFunc(type)) { - cntArr[1]++; - } else if (FuncType.isSet2RowFunc(type)) { - cntArr[2]++; + MappingType type = typeList.iterator().next(); + if (hasDownsample()) { + if (type == MappingType.Mapping) { + throw new SQLParserException("Downsample clause can not use SetToSet functions."); + } else if (type == MappingType.RowMapping) { + if (getTargetTypeFuncExprList(MappingType.RowMapping).isEmpty()) { + throw new SQLParserException( + "Downsample clause cannot be used without aggregate function."); + } else { + throw new SQLParserException("Downsample clause can not use RowToRow functions."); + } } + setQueryType(QueryType.DownSampleQuery); + } else if (type == MappingType.SetMapping) { + setQueryType(QueryType.AggregateQuery); + } else if (type == MappingType.Mapping) { + setQueryType(QueryType.MappingQuery); + } else { + setQueryType(QueryType.SimpleQuery); } - int typeCnt = 0; - for (int cnt : cntArr) { - typeCnt += Math.min(1, cnt); - } + } - // SetToSet SetToRow RowToRow functions can not be mixed. - if (typeCnt > 1) { - throw new SQLParserException( - "SetToSet/SetToRow/RowToRow functions can not be mixed in aggregate query."); - } - // SetToSet SetToRow functions and non-function modified path can not be mixed. - if (typeCnt == 1 && !hasGroupBy() && cntArr[0] == 0 && !getBaseExpressionList().isEmpty()) { - throw new SQLParserException( - "SetToSet/SetToRow functions and non-function modified path can not be mixed."); - } - if (hasGroupBy() && (cntArr[0] > 0 || cntArr[1] > 0)) { - throw new SQLParserException("Group by can not use SetToSet and RowToRow functions."); + /** + * 判断Expression的FuncExpression的映射类型 + * + * @param expression 给定Expression + * @return Expression的函数映射类型。若为ConstantExpression,返回null + */ + private MappingType getExprMappingType(Expression expression) { + switch (expression.getType()) { + case Constant: + case FromValue: + return null; + case Base: + case CaseWhen: + return MappingType.RowMapping; // case-when视为RowMapping函数 + case Unary: + return getExprMappingType(((UnaryExpression) expression).getExpression()); + case Bracket: + return getExprMappingType(((BracketExpression) expression).getExpression()); + case Function: + FuncExpression funcExpr = (FuncExpression) expression; + MappingType funcMappingType = FunctionUtils.getFunctionMappingType(funcExpr.getFuncName()); + Set childTypeSet = new HashSet<>(); + MappingType retType = funcMappingType; + for (Expression child : funcExpr.getExpressions()) { + MappingType childType = getExprMappingType(child); + childTypeSet.add(childType); + if (funcMappingType == MappingType.SetMapping) { + if (childType != null && childType != MappingType.RowMapping) { + throw new SQLParserException( + "SetToRow functions can not be nested with SetToSet/SetToRow functions."); + } + } else if (funcMappingType == MappingType.Mapping) { + if (childType != null && childType != MappingType.RowMapping) { + throw new SQLParserException( + "SetToSet functions can not be nested with SetToSet/SetToRow functions."); + } + } else { + if (childType != null) { + retType = childType; + } + } + } + childTypeSet.remove(null); + if (childTypeSet.size() > 1) { + throw new SQLParserException( + "SetToSet/SetToRow/RowToRow functions can not be mixed in function params."); + } + return retType; + case Binary: + BinaryExpression binaryExpr = (BinaryExpression) expression; + MappingType leftType = getExprMappingType(binaryExpr.getLeftExpression()); + MappingType rightType = getExprMappingType(binaryExpr.getRightExpression()); + if (leftType != null && rightType != null) { + if (leftType != rightType) { + throw new SQLParserException( + "SetToSet/SetToRow/RowToRow functions can not be mixed in BinaryExpression."); + } + return leftType; + } + if (leftType == null) { + return rightType; + } + return leftType; + case Multiple: + MultipleExpression multipleExpr = (MultipleExpression) expression; + Set typeSet = new HashSet<>(); + for (Expression child : multipleExpr.getChildren()) { + MappingType childType = getExprMappingType(child); + if (childType != null) { + typeSet.add(childType); + } + } + if (typeSet.size() == 1) { + return typeSet.iterator().next(); + } else if (typeSet.size() > 1) { + throw new SQLParserException( + "SetToSet/SetToRow/RowToRow functions can not be mixed in MultipleExpression."); + } else { + return null; + } + default: + throw new SQLParserException("Unknown expression type: " + expression.getType()); } } @@ -760,7 +758,7 @@ public enum QueryType { Unknown, SimpleQuery, AggregateQuery, - LastFirstQuery, + MappingQuery, DownSampleQuery, GroupByQuery } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java index bb07872366..90fcf2d7c4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java @@ -18,11 +18,14 @@ package cn.edu.tsinghua.iginx.sql.statement.select.subclause; +import cn.edu.tsinghua.iginx.engine.shared.expr.BinaryExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.BracketExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.MultipleExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.UnaryExpression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; -import cn.edu.tsinghua.iginx.engine.shared.operator.type.FuncType; -import cn.edu.tsinghua.iginx.sql.exception.SQLParserException; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; import cn.edu.tsinghua.iginx.sql.statement.frompart.SubQueryFromPart; import java.util.*; @@ -30,30 +33,11 @@ public class SelectClause { private final List selectSubQueryParts; private boolean isDistinct = false; private boolean hasValueToSelectedPath = false; - private final Map> funcExpressionMap; - private boolean hasFunc = false; private final List expressions; private final Set pathSet; - private static final Map str2TypeMap = new HashMap<>(); - - static { - str2TypeMap.put("first_value", FuncType.FirstValue); - str2TypeMap.put("last_value", FuncType.LastValue); - str2TypeMap.put("first", FuncType.First); - str2TypeMap.put("last", FuncType.Last); - str2TypeMap.put("min", FuncType.Min); - str2TypeMap.put("max", FuncType.Max); - str2TypeMap.put("avg", FuncType.Avg); - str2TypeMap.put("count", FuncType.Count); - str2TypeMap.put("sum", FuncType.Sum); - str2TypeMap.put("ratio", FuncType.Ratio); - str2TypeMap.put("", null); - } - public SelectClause() { this.selectSubQueryParts = new ArrayList<>(); - this.funcExpressionMap = new HashMap<>(); this.expressions = new ArrayList<>(); this.pathSet = new HashSet<>(); } @@ -82,61 +66,69 @@ public void setHasValueToSelectedPath(boolean hasValueToSelectedPath) { this.hasValueToSelectedPath = hasValueToSelectedPath; } - public void addFuncExpressionMap(String func, List expressions) { - funcExpressionMap.put(func, expressions); - } - - public Map> getFuncExpressionMap() { - return funcExpressionMap; - } - - /** - * 通过函数名,以及str2FuncType函数,获取函数类型的集合 - * - * @return 函数类型的集合 - */ - public Set getFuncTypeSet() { - Set funcTypeSet = new HashSet<>(); - for (Map.Entry> entry : funcExpressionMap.entrySet()) { - String func = entry.getKey(); - funcTypeSet.add(str2FuncType(func)); - } - return funcTypeSet; - } - - public boolean containsFuncType(FuncType funcType) { - for (Map.Entry> entry : funcExpressionMap.entrySet()) { - String func = entry.getKey(); - if (str2FuncType(func) == funcType) { - return true; + public boolean isLastFirst() { + List funcList = getTargetTypeFuncExprList(MappingType.Mapping); + boolean isLastFirst = true; + for (FuncExpression func : funcList) { + if (!func.getFuncName().equalsIgnoreCase("first") + && !func.getFuncName().equalsIgnoreCase("last")) { + isLastFirst = false; + break; } } - return false; + return isLastFirst; } - public static FuncType str2FuncType(String identifier) { - String lowerCaseIdentifier = identifier.toLowerCase(); - - if (str2TypeMap.containsKey(lowerCaseIdentifier)) { - return str2TypeMap.get(lowerCaseIdentifier); - } else { - if (FunctionUtils.isRowToRowFunction(identifier)) { - return FuncType.Udtf; - } else if (FunctionUtils.isSetToRowFunction(identifier)) { - return FuncType.Udaf; - } else if (FunctionUtils.isSetToSetFunction(identifier)) { - return FuncType.Udsf; - } - throw new SQLParserException(String.format("Unregister UDF function: %s.", identifier)); + public List getTargetTypeFuncExprList(MappingType mappingType) { + List ret = new ArrayList<>(); + for (Expression expression : expressions) { + ret.addAll(getTargetTypeFuncExprList(mappingType, expression)); } - } - - public boolean hasFunc() { - return hasFunc; - } - - public void setHasFunc(boolean hasFunc) { - this.hasFunc = hasFunc; + return ret; + } + + private List getTargetTypeFuncExprList(MappingType mappingType, Expression expr) { + List ret = new ArrayList<>(); + switch (expr.getType()) { + case Unary: + UnaryExpression unaryExpr = (UnaryExpression) expr; + ret.addAll(getTargetTypeFuncExprList(mappingType, unaryExpr.getExpression())); + break; + case Bracket: + BracketExpression bracketExpr = (BracketExpression) expr; + ret.addAll(getTargetTypeFuncExprList(mappingType, bracketExpr.getExpression())); + break; + case Binary: + BinaryExpression binaryExpr = (BinaryExpression) expr; + ret.addAll(getTargetTypeFuncExprList(mappingType, binaryExpr.getLeftExpression())); + ret.addAll(getTargetTypeFuncExprList(mappingType, binaryExpr.getRightExpression())); + break; + case Multiple: + MultipleExpression multipleExpr = (MultipleExpression) expr; + for (Expression child : multipleExpr.getChildren()) { + ret.addAll(getTargetTypeFuncExprList(mappingType, child)); + } + break; + case Function: + FuncExpression funcExpr = (FuncExpression) expr; + String funcName = funcExpr.getFuncName(); + if (FunctionUtils.getFunctionMappingType(funcName) == mappingType) { + ret.add(funcExpr); + } else { + for (Expression expression : funcExpr.getExpressions()) { + ret.addAll(getTargetTypeFuncExprList(mappingType, expression)); + } + } + break; + case Base: + case Constant: + case FromValue: + case CaseWhen: + break; + default: + throw new IllegalArgumentException(String.format("Unknown expr type: %s", expr.getType())); + } + return ret; } public void addExpression(Expression expression) { @@ -151,10 +143,6 @@ public Set getPathSet() { return pathSet; } - public void addAllPath(Collection paths) { - this.pathSet.addAll(paths); - } - public void addPath(String path) { pathSet.add(path); } diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java index b115e8616a..2c38628fa6 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java @@ -33,6 +33,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; +import cn.edu.tsinghua.iginx.engine.shared.expr.BaseExpression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.system.Avg; @@ -2255,7 +2256,8 @@ public void testLimitWithOutOfRangeB() throws PhysicalException { public void testDownsample() throws PhysicalException { Table table = generateTableForUnaryOperator(true); - FunctionParams params = new FunctionParams(Collections.singletonList("a.a.b")); + FunctionParams params = + new FunctionParams(Collections.singletonList(new BaseExpression("a.a.b"))); Downsample downsample = new Downsample( @@ -2293,7 +2295,8 @@ public void testDownsample() throws PhysicalException { public void testDownsampleWithoutTimestamp() throws PhysicalException { Table table = generateTableForUnaryOperator(false); - FunctionParams params = new FunctionParams(Collections.singletonList("a.a.b")); + FunctionParams params = + new FunctionParams(Collections.singletonList(new BaseExpression("a.a.b"))); Downsample downsample = new Downsample( @@ -2310,7 +2313,8 @@ public void testDownsampleWithoutTimestamp() throws PhysicalException { public void testMappingTransform() throws PhysicalException { Table table = generateTableForUnaryOperator(false); - FunctionParams params = new FunctionParams(Collections.singletonList("a.a.b")); + FunctionParams params = + new FunctionParams(Collections.singletonList(new BaseExpression("a.a.b"))); MappingTransform mappingTransform = new MappingTransform( @@ -2341,7 +2345,8 @@ public void testMappingTransform() throws PhysicalException { public void testSetTransform() throws PhysicalException { Table table = generateTableForUnaryOperator(false); - FunctionParams params = new FunctionParams(Collections.singletonList("a.a.b")); + FunctionParams params = + new FunctionParams(Collections.singletonList(new BaseExpression("a.a.b"))); SetTransform setTransform = new SetTransform( diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java index 77bef7c62c..dfc0f3fbc1 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java @@ -23,6 +23,7 @@ import static org.junit.Assert.assertTrue; import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.PathFilter; import cn.edu.tsinghua.iginx.sql.statement.AddStorageEngineStatement; @@ -91,30 +92,17 @@ public void testParseSelect() { "SELECT SUM(c), SUM(d), SUM(e), COUNT(f), COUNT(g) FROM a.b WHERE 100 < key and key < 1000 or d == \"abc\" or \"666\" <= c or (e < 10 and not (f < 10)) OVER WINDOW (size 10 IN [200, 300));"; UnarySelectStatement statement = (UnarySelectStatement) TestUtils.buildStatement(selectStr); - assertTrue(statement.hasFunc()); assertTrue(statement.hasValueFilter()); assertTrue(statement.hasDownsample()); assertEquals(UnarySelectStatement.QueryType.DownSampleQuery, statement.getQueryType()); - assertEquals(2, statement.getFuncExpressionMap().size()); - assertTrue(statement.getFuncExpressionMap().containsKey("SUM")); - assertTrue(statement.getFuncExpressionMap().containsKey("COUNT")); - - assertEquals( - Collections.singletonList("a.b.c"), - statement.getFuncExpressionMap().get("SUM").get(0).getColumns()); - assertEquals( - Collections.singletonList("a.b.d"), - statement.getFuncExpressionMap().get("SUM").get(1).getColumns()); - assertEquals( - Collections.singletonList("a.b.e"), - statement.getFuncExpressionMap().get("SUM").get(2).getColumns()); - assertEquals( - Collections.singletonList("a.b.f"), - statement.getFuncExpressionMap().get("COUNT").get(0).getColumns()); - assertEquals( - Collections.singletonList("a.b.g"), - statement.getFuncExpressionMap().get("COUNT").get(1).getColumns()); + List funcExprList = statement.getTargetTypeFuncExprList(MappingType.SetMapping); + assertEquals(5, funcExprList.size()); + assertEquals("sum(a.b.c)", funcExprList.get(0).getColumnName()); + assertEquals("sum(a.b.d)", funcExprList.get(1).getColumnName()); + assertEquals("sum(a.b.e)", funcExprList.get(2).getColumnName()); + assertEquals("count(a.b.f)", funcExprList.get(3).getColumnName()); + assertEquals("count(a.b.g)", funcExprList.get(4).getColumnName()); assertEquals( "(((key > 100 && key < 1000) || a.b.d == \"abc\" || a.b.c >= \"666\" || (a.b.e < 10 && !(a.b.f < 10))) && key >= 200 && key < 300)", @@ -237,8 +225,9 @@ public void testSubQueryClause() { SubQueryFromPart subQueryFromPart = (SubQueryFromPart) statement.getFromParts().get(0); UnarySelectStatement subStatement = (UnarySelectStatement) subQueryFromPart.getSubQuery(); - FuncExpression expression = subStatement.getFuncExpressionMap().get("max").get(0); - assertEquals(Collections.singletonList("res.a"), expression.getColumns()); + FuncExpression expression = + subStatement.getTargetTypeFuncExprList(MappingType.SetMapping).get(0); + assertEquals("max(res.a)", expression.getColumnName()); assertEquals("max", expression.getFuncName()); assertEquals("max_a", expression.getAlias()); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java index d8f6cb0d8d..a082fd996c 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java @@ -381,7 +381,7 @@ private void changeColumnsFromFunctionCallList( List functionCallList, Set columns) { for (FunctionCall functionCall : functionCallList) { String functionName = FunctionUtils.getFunctionName(functionCall.getFunction()); - List paths = functionCall.getParams().getPaths(); + List paths = ExprUtils.getPathFromExprList(functionCall.getParams().getExpressions()); boolean isPyUDF; try { isPyUDF = FunctionUtils.isPyUDF(functionName); @@ -395,9 +395,9 @@ private void changeColumnsFromFunctionCallList( columns.remove("value"); columns.addAll(paths); } else if (functionName.equals(ArithmeticExpr.ARITHMETIC_EXPR)) { - String functionStr = functionCall.getParams().getExpr().getColumnName(); + String functionStr = functionCall.getParams().getExpression(0).getColumnName(); columns.remove(functionStr); - columns.addAll(ExprUtils.getPathFromExpr(functionCall.getParams().getExpr())); + columns.addAll(ExprUtils.getPathFromExpr(functionCall.getParams().getExpression(0))); } else if (isPyUDF) { // UDF结果列括号内可以随意命名,因此我们识别columns中所有开头为UDF的列,不识别括号内的内容 String prefix = functionName + "("; @@ -412,9 +412,10 @@ private void changeColumnsFromFunctionCallList( columns.clear(); columns.addAll(newColumns); } else { - String functionStr = functionName + "(" + String.join(", ", paths) + ")"; + List columnNames = functionCall.getParams().getPaths(); + String functionStr = functionName + "(" + String.join(", ", columnNames) + ")"; if (functionCall.getParams().isDistinct()) { - functionStr = functionName + "(distinct " + String.join(", ", paths) + ")"; + functionStr = functionName + "(distinct " + String.join(", ", columnNames) + ")"; } columns.addAll(paths); if (columns.contains(functionStr)) { diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java index 57a7541891..eb27355934 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java @@ -118,9 +118,7 @@ public void visit(ConstantExpression expression) {} public void visit(FromValueExpression expression) {} @Override - public void visit(FuncExpression expression) { - expression.getColumns().replaceAll(column -> removePrefix(column, prefix)); - } + public void visit(FuncExpression expression) {} @Override public void visit(MultipleExpression expression) {} diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java index d92c929cdd..a109f7d259 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java @@ -120,11 +120,7 @@ public void visit(ConstantExpression expression) {} public void visit(FromValueExpression expression) {} @Override - public void visit(FuncExpression expression) { - expression - .getColumns() - .replaceAll(column -> PathUtils.recoverRenamedPattern(renameMap, column)); - } + public void visit(FuncExpression expression) {} @Override public void visit(MultipleExpression expression) {} diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java index 06018b972e..25b816c4c7 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java @@ -21,6 +21,7 @@ import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; +import cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr; import cn.edu.tsinghua.iginx.engine.shared.operator.Rename; import cn.edu.tsinghua.iginx.engine.shared.operator.RowTransform; import cn.edu.tsinghua.iginx.engine.shared.source.OperatorSource; @@ -48,8 +49,8 @@ public boolean matches(RuleCall call) { RowTransform rowTransform = (RowTransform) call.getMatchedRoot(); List functionCallList = rowTransform.getFunctionCallList(); for (FunctionCall functionCall : functionCallList) { - Expression expr = functionCall.getParams().getExpr(); - if (expr != null) { + if (functionCall.getFunction() instanceof ArithmeticExpr) { + Expression expr = functionCall.getParams().getExpression(0); Expression flattenedExpression = ExprUtils.flattenExpression(ExprUtils.copy(expr)); if (ExprUtils.hasMultiConstantsInMultipleExpression(flattenedExpression)) { return true; @@ -66,13 +67,13 @@ public void onMatch(RuleCall call) { List> aliasList = new ArrayList<>(); for (FunctionCall functionCall : functionCallList) { - Expression expr = functionCall.getParams().getExpr(); - if (expr != null) { + if (functionCall.getFunction() instanceof ArithmeticExpr) { + Expression expr = functionCall.getParams().getExpression(0); String oldName = expr.getColumnName(); Expression flattenedExpression = ExprUtils.flattenExpression(expr); if (ExprUtils.hasMultiConstantsInMultipleExpression(flattenedExpression)) { Expression foldedExpression = ExprUtils.foldExpression(flattenedExpression); - functionCall.getParams().setExpr(foldedExpression); + functionCall.getParams().setExpression(0, foldedExpression); String newName = foldedExpression.getColumnName(); aliasList.add(new Pair<>(newName, oldName)); } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/datasource/DataSourceIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/datasource/DataSourceIT.java index 008cad2ca8..35ea638612 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/datasource/DataSourceIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/datasource/DataSourceIT.java @@ -29,6 +29,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; +import cn.edu.tsinghua.iginx.engine.shared.expr.BaseExpression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.system.Count; @@ -272,7 +273,8 @@ public void frequentCountAndInsertOverlapData() throws PhysicalException { Project project = new Project(source, Collections.singletonList("*"), null); OperatorSource projectSource = new OperatorSource(project); - FunctionParams countParams = new FunctionParams(Collections.singletonList("*")); + FunctionParams countParams = + new FunctionParams(Collections.singletonList(new BaseExpression("*"))); FunctionCall countCall = new FunctionCall(Count.getInstance(), countParams); SetTransform countOperator = new SetTransform(projectSource, Collections.singletonList(countCall)); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 4f5ab12bd1..5450c6d1ed 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -1571,6 +1571,70 @@ public void testAggregateQuery() { } } + @Test + public void testAggregateQueryWithArithExpr() { + String statement = "SELECT %s(s1 + s2), %s(s2 * 3) FROM us.d1 WHERE key > 0 AND key < 100;"; + List funcTypeList = + Arrays.asList("MAX", "MIN", "FIRST_VALUE", "LAST_VALUE", "SUM", "AVG", "COUNT"); + List expectedList = + Arrays.asList( + "ResultSets:\n" + + "+------------------------+-----------------+\n" + + "|max(us.d1.s1 + us.d1.s2)|max(us.d1.s2 × 3)|\n" + + "+------------------------+-----------------+\n" + + "| 199| 300|\n" + + "+------------------------+-----------------+\n" + + "Total line number = 1\n", + "ResultSets:\n" + + "+------------------------+-----------------+\n" + + "|min(us.d1.s1 + us.d1.s2)|min(us.d1.s2 × 3)|\n" + + "+------------------------+-----------------+\n" + + "| 3| 6|\n" + + "+------------------------+-----------------+\n" + + "Total line number = 1\n", + "ResultSets:\n" + + "+--------------------------------+-------------------------+\n" + + "|first_value(us.d1.s1 + us.d1.s2)|first_value(us.d1.s2 × 3)|\n" + + "+--------------------------------+-------------------------+\n" + + "| 3| 6|\n" + + "+--------------------------------+-------------------------+\n" + + "Total line number = 1\n", + "ResultSets:\n" + + "+-------------------------------+------------------------+\n" + + "|last_value(us.d1.s1 + us.d1.s2)|last_value(us.d1.s2 × 3)|\n" + + "+-------------------------------+------------------------+\n" + + "| 199| 300|\n" + + "+-------------------------------+------------------------+\n" + + "Total line number = 1\n", + "ResultSets:\n" + + "+------------------------+-----------------+\n" + + "|sum(us.d1.s1 + us.d1.s2)|sum(us.d1.s2 × 3)|\n" + + "+------------------------+-----------------+\n" + + "| 9999| 15147|\n" + + "+------------------------+-----------------+\n" + + "Total line number = 1\n", + "ResultSets:\n" + + "+------------------------+-----------------+\n" + + "|avg(us.d1.s1 + us.d1.s2)|avg(us.d1.s2 × 3)|\n" + + "+------------------------+-----------------+\n" + + "| 101.0| 153.0|\n" + + "+------------------------+-----------------+\n" + + "Total line number = 1\n", + "ResultSets:\n" + + "+--------------------------+-------------------+\n" + + "|count(us.d1.s1 + us.d1.s2)|count(us.d1.s2 × 3)|\n" + + "+--------------------------+-------------------+\n" + + "| 99| 99|\n" + + "+--------------------------+-------------------+\n" + + "Total line number = 1\n"); + for (int i = 0; i < funcTypeList.size(); i++) { + String type = funcTypeList.get(i); + String expected = expectedList.get(i); + + executor.executeAndCompare(String.format(statement, type, type), expected); + } + } + @Test public void testDownSampleQuery() { String statement = "SELECT %s(s1), %s(s4) FROM us.d1 OVER WINDOW (size 100 IN (0, 1000));"; @@ -1707,6 +1771,133 @@ public void testDownSampleQuery() { .anyMatch(s -> s.contains("Downsample") && s.contains("avg") && s.contains("count"))); } + @Test + public void testDownSampleQueryWithArithExpr() { + String statement = + "SELECT %s(s4 - s1), %s(s4 * s1 * 2) FROM us.d1 OVER WINDOW (size 10 IN (0, 100));"; + List funcTypeList = + Arrays.asList("MAX", "MIN", "FIRST_VALUE", "LAST_VALUE", "SUM", "AVG", "COUNT"); + List expectedList = + Arrays.asList( + "ResultSets:\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "|key|window_start|window_end|max(us.d1.s4 - us.d1.s1)|max(us.d1.s4 × us.d1.s1 × 2)|\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "| 1| 1| 10| 0.10000000000000009| 202.0|\n" + + "| 11| 11| 20| 0.10000000000000142| 804.0|\n" + + "| 21| 21| 30| 0.10000000000000142| 1806.0|\n" + + "| 31| 31| 40| 0.10000000000000142| 3208.0|\n" + + "| 41| 41| 50| 0.10000000000000142| 5010.0|\n" + + "| 51| 51| 60| 0.10000000000000142| 7212.0|\n" + + "| 61| 61| 70| 0.10000000000000142| 9814.0|\n" + + "| 71| 71| 80| 0.09999999999999432| 12816.0|\n" + + "| 81| 81| 90| 0.09999999999999432| 16217.999999999998|\n" + + "| 91| 91| 100| 0.09999999999999432| 19621.8|\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "Total line number = 10\n", + "ResultSets:\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "|key|window_start|window_end|min(us.d1.s4 - us.d1.s1)|min(us.d1.s4 × us.d1.s1 × 2)|\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "| 1| 1| 10| 0.09999999999999964| 2.2|\n" + + "| 11| 11| 20| 0.09999999999999964| 244.2|\n" + + "| 21| 21| 30| 0.10000000000000142| 886.2|\n" + + "| 31| 31| 40| 0.10000000000000142| 1928.2|\n" + + "| 41| 41| 50| 0.10000000000000142| 3370.2000000000003|\n" + + "| 51| 51| 60| 0.10000000000000142| 5212.2|\n" + + "| 61| 61| 70| 0.09999999999999432| 7454.2|\n" + + "| 71| 71| 80| 0.09999999999999432| 10096.199999999999|\n" + + "| 81| 81| 90| 0.09999999999999432| 13138.199999999999|\n" + + "| 91| 91| 100| 0.09999999999999432| 16580.2|\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "Total line number = 10\n", + "ResultSets:\n" + + "+---+------------+----------+--------------------------------+------------------------------------+\n" + + "|key|window_start|window_end|first_value(us.d1.s4 - us.d1.s1)|first_value(us.d1.s4 × us.d1.s1 × 2)|\n" + + "+---+------------+----------+--------------------------------+------------------------------------+\n" + + "| 1| 1| 10| 0.10000000000000009| 2.2|\n" + + "| 11| 11| 20| 0.09999999999999964| 244.2|\n" + + "| 21| 21| 30| 0.10000000000000142| 886.2|\n" + + "| 31| 31| 40| 0.10000000000000142| 1928.2|\n" + + "| 41| 41| 50| 0.10000000000000142| 3370.2000000000003|\n" + + "| 51| 51| 60| 0.10000000000000142| 5212.2|\n" + + "| 61| 61| 70| 0.10000000000000142| 7454.2|\n" + + "| 71| 71| 80| 0.09999999999999432| 10096.199999999999|\n" + + "| 81| 81| 90| 0.09999999999999432| 13138.199999999999|\n" + + "| 91| 91| 100| 0.09999999999999432| 16580.2|\n" + + "+---+------------+----------+--------------------------------+------------------------------------+\n" + + "Total line number = 10\n", + "ResultSets:\n" + + "+---+------------+----------+-------------------------------+-----------------------------------+\n" + + "|key|window_start|window_end|last_value(us.d1.s4 - us.d1.s1)|last_value(us.d1.s4 × us.d1.s1 × 2)|\n" + + "+---+------------+----------+-------------------------------+-----------------------------------+\n" + + "| 1| 1| 10| 0.09999999999999964| 202.0|\n" + + "| 11| 11| 20| 0.10000000000000142| 804.0|\n" + + "| 21| 21| 30| 0.10000000000000142| 1806.0|\n" + + "| 31| 31| 40| 0.10000000000000142| 3208.0|\n" + + "| 41| 41| 50| 0.10000000000000142| 5010.0|\n" + + "| 51| 51| 60| 0.10000000000000142| 7212.0|\n" + + "| 61| 61| 70| 0.09999999999999432| 9814.0|\n" + + "| 71| 71| 80| 0.09999999999999432| 12816.0|\n" + + "| 81| 81| 90| 0.09999999999999432| 16217.999999999998|\n" + + "| 91| 91| 100| 0.09999999999999432| 19621.8|\n" + + "+---+------------+----------+-------------------------------+-----------------------------------+\n" + + "Total line number = 10\n", + "ResultSets:\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "|key|window_start|window_end|sum(us.d1.s4 - us.d1.s1)|sum(us.d1.s4 × us.d1.s1 × 2)|\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "| 1| 1| 10| 0.9999999999999978| 780.9999999999999|\n" + + "| 11| 11| 20| 1.0000000000000053| 5001.0|\n" + + "| 21| 21| 30| 1.0000000000000142| 13221.0|\n" + + "| 31| 31| 40| 1.0000000000000142| 25441.0|\n" + + "| 41| 41| 50| 1.0000000000000142| 41661.00000000001|\n" + + "| 51| 51| 60| 1.0000000000000142| 61881.0|\n" + + "| 61| 61| 70| 0.9999999999999645| 86101.0|\n" + + "| 71| 71| 80| 0.9999999999999432| 114320.99999999999|\n" + + "| 81| 81| 90| 0.9999999999999432| 146540.99999999997|\n" + + "| 91| 91| 100| 0.8999999999999488| 162740.99999999997|\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "Total line number = 10\n", + "ResultSets:\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "|key|window_start|window_end|avg(us.d1.s4 - us.d1.s1)|avg(us.d1.s4 × us.d1.s1 × 2)|\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "| 1| 1| 10| 0.09999999999999978| 78.1|\n" + + "| 11| 11| 20| 0.10000000000000053| 500.1|\n" + + "| 21| 21| 30| 0.10000000000000142| 1322.1|\n" + + "| 31| 31| 40| 0.10000000000000142| 2544.1|\n" + + "| 41| 41| 50| 0.10000000000000142| 4166.1|\n" + + "| 51| 51| 60| 0.10000000000000142| 6188.1|\n" + + "| 61| 61| 70| 0.09999999999999645| 8610.1|\n" + + "| 71| 71| 80| 0.09999999999999432| 11432.099999999999|\n" + + "| 81| 81| 90| 0.09999999999999432| 14654.099999999997|\n" + + "| 91| 91| 100| 0.09999999999999432| 18082.33333333333|\n" + + "+---+------------+----------+------------------------+----------------------------+\n" + + "Total line number = 10\n", + "ResultSets:\n" + + "+---+------------+----------+--------------------------+------------------------------+\n" + + "|key|window_start|window_end|count(us.d1.s4 - us.d1.s1)|count(us.d1.s4 × us.d1.s1 × 2)|\n" + + "+---+------------+----------+--------------------------+------------------------------+\n" + + "| 1| 1| 10| 10| 10|\n" + + "| 11| 11| 20| 10| 10|\n" + + "| 21| 21| 30| 10| 10|\n" + + "| 31| 31| 40| 10| 10|\n" + + "| 41| 41| 50| 10| 10|\n" + + "| 51| 51| 60| 10| 10|\n" + + "| 61| 61| 70| 10| 10|\n" + + "| 71| 71| 80| 10| 10|\n" + + "| 81| 81| 90| 10| 10|\n" + + "| 91| 91| 100| 9| 9|\n" + + "+---+------------+----------+--------------------------+------------------------------+\n" + + "Total line number = 10\n"); + for (int i = 0; i < funcTypeList.size(); i++) { + String type = funcTypeList.get(i); + String expected = expectedList.get(i); + executor.executeAndCompare(String.format(statement, type, type), expected); + } + } + @Test public void testRangeDownSampleQuery() { String statement = @@ -2623,6 +2814,131 @@ public void testGroupByAndHaving() { executor.executeAndCompare(query, expected); } + @Test + public void testGroupByWithArithExpr() { + String insert = + "insert into test(key, a, b, c, d) values (1, 3, 2, 3.1, \"val1\"), (2, 1, 3, 2.1, \"val2\"), (3, 2, 2, 1.1, \"val5\"), (4, 3, 2, 2.1, \"val2\"), (5, 1, 2, 3.1, \"val1\"), (6, 2, 2, 5.1, \"val3\");"; + executor.execute(insert); + + String query = "select * from test;"; + String expected = + "ResultSets:\n" + + "+---+------+------+------+------+\n" + + "|key|test.a|test.b|test.c|test.d|\n" + + "+---+------+------+------+------+\n" + + "| 1| 3| 2| 3.1| val1|\n" + + "| 2| 1| 3| 2.1| val2|\n" + + "| 3| 2| 2| 1.1| val5|\n" + + "| 4| 3| 2| 2.1| val2|\n" + + "| 5| 1| 2| 3.1| val1|\n" + + "| 6| 2| 2| 5.1| val3|\n" + + "+---+------+------+------+------+\n" + + "Total line number = 6\n"; + executor.executeAndCompare(query, expected); + + query = "select b, sum(c / a * 5), avg(a * c + 1) from test group by b order by b;"; + expected = + "ResultSets:\n" + + "+------+------------------------+------------------------+\n" + + "|test.b|sum(test.c ÷ test.a × 5)|avg(test.a × test.c + 1)|\n" + + "+------+------------------------+------------------------+\n" + + "| 2| 39.66666666666667| 7.219999999999999|\n" + + "| 3| 10.5| 3.1|\n" + + "+------+------------------------+------------------------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(query, expected); + + query = + "select b, sum(c / a * 5), avg(a * c + 1) from test group by b having sum(c / a * 5) > 20 order by b;"; + expected = + "ResultSets:\n" + + "+------+------------------------+------------------------+\n" + + "|test.b|sum(test.c ÷ test.a × 5)|avg(test.a × test.c + 1)|\n" + + "+------+------------------------+------------------------+\n" + + "| 2| 39.66666666666667| 7.219999999999999|\n" + + "+------+------------------------+------------------------+\n" + + "Total line number = 1\n"; + executor.executeAndCompare(query, expected); + + query = "select b, d, avg(c / a * 5), sum(a * (c + 1)) from test group by b, d order by b, d;"; + expected = + "ResultSets:\n" + + "+------+------+------------------------+--------------------------+\n" + + "|test.b|test.d|avg(test.c ÷ test.a × 5)|sum(test.a × (test.c + 1))|\n" + + "+------+------+------------------------+--------------------------+\n" + + "| 2| val1| 10.333333333333334| 16.4|\n" + + "| 2| val2| 3.5000000000000004| 9.3|\n" + + "| 2| val3| 12.75| 12.2|\n" + + "| 2| val5| 2.75| 4.2|\n" + + "| 3| val2| 10.5| 3.1|\n" + + "+------+------+------------------------+--------------------------+\n" + + "Total line number = 5\n"; + executor.executeAndCompare(query, expected); + + query = + "select b, d, avg(c / a * 5), sum(a * (c + 1)) from test group by b, d having SUM(a * (c + 1)) < 10 order by b, d;"; + expected = + "ResultSets:\n" + + "+------+------+------------------------+--------------------------+\n" + + "|test.b|test.d|avg(test.c ÷ test.a × 5)|sum(test.a × (test.c + 1))|\n" + + "+------+------+------------------------+--------------------------+\n" + + "| 2| val2| 3.5000000000000004| 9.3|\n" + + "| 2| val5| 2.75| 4.2|\n" + + "| 3| val2| 10.5| 3.1|\n" + + "+------+------+------------------------+--------------------------+\n" + + "Total line number = 3\n"; + executor.executeAndCompare(query, expected); + } + + @Test + public void testGroupByWithCaseWhen() { + String insert = + "insert into test(key, a, b, c, d) values (1, 3, 2, 3.1, \"val1\"), (2, 1, 3, 2.1, \"val2\"), (3, 2, 2, 1.1, \"val5\"), (4, 3, 2, 2.1, \"val2\"), (5, 1, 2, 3.1, \"val1\"), (6, 2, 2, 5.1, \"val3\");"; + executor.execute(insert); + + String query = "select * from test;"; + String expected = + "ResultSets:\n" + + "+---+------+------+------+------+\n" + + "|key|test.a|test.b|test.c|test.d|\n" + + "+---+------+------+------+------+\n" + + "| 1| 3| 2| 3.1| val1|\n" + + "| 2| 1| 3| 2.1| val2|\n" + + "| 3| 2| 2| 1.1| val5|\n" + + "| 4| 3| 2| 2.1| val2|\n" + + "| 5| 1| 2| 3.1| val1|\n" + + "| 6| 2| 2| 5.1| val3|\n" + + "+---+------+------+------+------+\n" + + "Total line number = 6\n"; + executor.executeAndCompare(query, expected); + + query = + "select b, sum(case when d = \"val1\" then 1 when d = \"val2\" then 2 else 3 end) as val from test group by b;"; + expected = + "ResultSets:\n" + + "+------+---+\n" + + "|test.b|val|\n" + + "+------+---+\n" + + "| 2| 10|\n" + + "| 3| 2|\n" + + "+------+---+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(query, expected); + + query = + "select b, sum(case when a = 1 then 1 else 0 end) + sum(a) as column from test group by b;"; + expected = + "ResultSets:\n" + + "+------+------+\n" + + "|test.b|column|\n" + + "+------+------+\n" + + "| 2| 12|\n" + + "| 3| 2|\n" + + "+------+------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(query, expected); + } + @Test public void testJoinWithGroupBy() { String insert = @@ -5988,15 +6304,15 @@ public void testErrorClause() { errClause = "SELECT last(s1), max(s2) FROM us.d1;"; executor.executeAndCompareErrMsg( - errClause, "SetToSet/SetToRow/RowToRow functions can not be mixed in aggregate query."); + errClause, + "SetToSet/SetToRow/RowToRow functions can not be mixed in selected expressions."); errClause = "SELECT s1 FROM us.d1 OVER WINDOW (size 100 IN (100, 10));"; executor.executeAndCompareErrMsg( errClause, "start key should be smaller than end key in key interval."); errClause = "SELECT last(s1) FROM us.d1 GROUP BY s2;"; - executor.executeAndCompareErrMsg( - errClause, "Group by can not use SetToSet and RowToRow functions."); + executor.executeAndCompareErrMsg(errClause, "Group by can not use SetToSet functions."); errClause = "select * from test.a join test.b where a > 0;"; executor.executeAndCompareErrMsg(errClause, "Unexpected paths' name: [a]."); @@ -6020,7 +6336,7 @@ public void testExplain() { + "| Logical Tree|Operator Type| Operator Info|\n" + "+-----------------+-------------+--------------------------------------------------------------------------------------------------+\n" + "|Reorder | Reorder| Order: max(us.d1.s2),min(us.d1.s1)|\n" - + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (min, System), (max, System), MappingType: SetMapping, isDistinct: false|\n" + + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (max, System), (min, System), MappingType: SetMapping, isDistinct: false|\n" + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" + "+-----------------+-------------+--------------------------------------------------------------------------------------------------+\n" + "Total line number = 3\n"; @@ -6892,7 +7208,7 @@ public void testFilterPushDownExplain() { + "| +--Project | Project| Patterns: *|\n" + "| +--Reorder | Reorder| Order: max(us.d1.s2),min(us.d1.s3),us.d1.s1|\n" + "| +--Select | Select| Filter: (max(us.d1.s2) > 10)|\n" - + "| +--GroupBy | GroupBy|GroupByCols: us.d1.s1, FuncList(Name, FuncType): (min, System),(max, System), MappingType: SetMapping isDistinct: false|\n" + + "| +--GroupBy | GroupBy|GroupByCols: us.d1.s1, FuncList(Name, FuncType): (max, System),(min, System), MappingType: SetMapping isDistinct: false|\n" + "| +--Select | Select| Filter: (us.d1.s1 < 10)|\n" + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2,us.d1.s3, Target DU: unit0000000000|\n" + "+----------------------+-------------+-----------------------------------------------------------------------------------------------------------------------+\n" @@ -7272,7 +7588,7 @@ public void testSetMappingTransform() { + "| Logical Tree|Operator Type| Operator Info|\n" + "+-----------------+-------------+----------------------------------------------------------------------------------------------------+\n" + "|Reorder | Reorder| Order: count(us.d1.s1),avg(us.d1.s2)|\n" - + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (avg, System), (count, System), MappingType: SetMapping, isDistinct: false|\n" + + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (count, System), (avg, System), MappingType: SetMapping, isDistinct: false|\n" + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" + "+-----------------+-------------+----------------------------------------------------------------------------------------------------+\n" + "Total line number = 3\n"; @@ -7315,7 +7631,7 @@ public void testMappingTransform() { + "| Logical Tree| Operator Type| Operator Info|\n" + "+---------------------+----------------+----------------------------------------------------------------------------------------------------------------+\n" + "|Reorder | Reorder| Order: path,value|\n" - + "| +--MappingTransform|MappingTransform|FuncList(Name, FuncType): (last, System), (last, System), (first, System), (first, System), MappingType: Mapping|\n" + + "| +--MappingTransform|MappingTransform|FuncList(Name, FuncType): (first, System), (last, System), (first, System), (last, System), MappingType: Mapping|\n" + "| +--Join | Join| JoinBy: key|\n" + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2,us.d1.s3, Target DU: unit0000000000|\n" + "| +--Project | Project| Patterns: us.d1.s4, Target DU: unit0000000001|\n" diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java index db82ca699c..3a53f49aed 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java @@ -256,6 +256,45 @@ public void testCOS() { } } + @Test + public void testNestedUDF() { + String statement = "SELECT arccos(cos(s1)) FROM us.d1 WHERE s1 < 4;"; + SessionExecuteSqlResult ret = tool.execute(statement); + compareResult(Collections.singletonList("arccos(cos(us.d1.s1))"), ret.getPaths()); + compareResult(new long[] {0L, 1L, 2L, 3L}, ret.getKeys()); + List expectedValues = Arrays.asList(0.0, 1.0, 2.0, 3.0); + for (int i = 0; i < ret.getValues().size(); i++) { + compareResult(1, ret.getValues().get(i).size()); + double expected = expectedValues.get(i); + double actual = (double) ret.getValues().get(i).get(0); + compareResult(expected, actual, delta); + } + + statement = "SELECT sum(cos(s1)), avg(cos(s1)) FROM us.d1 WHERE s1 < 10;"; + ret = tool.execute(statement); + compareResult(Arrays.asList("sum(cos(us.d1.s1))", "avg(cos(us.d1.s1))"), ret.getPaths()); + assertEquals(1, ret.getValues().size()); + expectedValues = Arrays.asList(0.42162378262054656, 0.042162378262054656); + assertEquals(2, ret.getValues().get(0).size()); + for (int i = 0; i < 2; i++) { + double expected = expectedValues.get(i); + double actual = (double) ret.getValues().get(0).get(i); + compareResult(expected, actual, delta); + } + + statement = "SELECT avg(s1), cos(avg(s1)) FROM us.d1 WHERE s1 < 10;"; + ret = tool.execute(statement); + compareResult(Arrays.asList("avg(us.d1.s1)", "cos(avg(us.d1.s1))"), ret.getPaths()); + assertEquals(1, ret.getValues().size()); + expectedValues = Arrays.asList(4.5, -0.2107957994307797); + assertEquals(2, ret.getValues().get(0).size()); + for (int i = 0; i < 2; i++) { + double expected = expectedValues.get(i); + double actual = (double) ret.getValues().get(0).get(i); + compareResult(expected, actual, delta); + } + } + @Test public void testConcurrentCos() { String insert = diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java index 6987222deb..23de0469b0 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java @@ -64,6 +64,7 @@ public void testUDFFuncList() { + "| columnExpand|UDFColumnExpand|udtf_column_expand.py|0.0.0.0| UDTF|\n" + "| udf_min| UDFMin| udf_min.py|0.0.0.0| UDAF|\n" + "| udf_avg| UDFAvg| udf_avg.py|0.0.0.0| UDAF|\n" + + "| arccos| UDFArcCos| udtf_arccos.py|0.0.0.0| UDTF|\n" + "| key_add_one| UDFKeyAddOne| udtf_key_add_one.py|0.0.0.0| UDTF|\n" + "| pow| UDFPow| udtf_pow.py|0.0.0.0| UDTF|\n" + "| reverse_rows| UDFReverseRows| udsf_reverse_rows.py|0.0.0.0| UDSF|\n" diff --git a/udf_funcs/python_scripts/udtf_arccos.py b/udf_funcs/python_scripts/udtf_arccos.py new file mode 100644 index 0000000000..455d80ae47 --- /dev/null +++ b/udf_funcs/python_scripts/udtf_arccos.py @@ -0,0 +1,43 @@ +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import math + + +class UDFArcCos: + def __init__(self): + pass + + def transform(self, data, args, kvargs): + res = self.buildHeader(data) + arccosRow = [] + for num in data[2][1:]: + try: + arccosRow.append(math.acos(num)) + except ValueError: + arccosRow.append(None) + res.append(arccosRow) + return res + + def buildHeader(self, data): + colNames = [] + colTypes = [] + for name in data[0][1:]: + colNames.append("arccos(" + name + ")") + colTypes.append("DOUBLE") + return [colNames, colTypes] diff --git a/udf_funcs/udf_list b/udf_funcs/udf_list index dba3e0746d..5a500331fc 100644 --- a/udf_funcs/udf_list +++ b/udf_funcs/udf_list @@ -8,6 +8,7 @@ UDAF,udf_count,UDFCount,udf_count.py UDAF,udf_max_with_key,UDFMaxWithKey,udf_max_with_key.py UDTF,cos,UDFCos,udtf_cos.py +UDTF,arccos,UDFArcCos,udtf_arccos.py UDTF,multiply,UDFMultiply,udtf_multiply.py UDTF,columnExpand,UDFColumnExpand,udtf_column_expand.py UDTF,pow,UDFPow,udtf_pow.py From 6eda6e5f3b981a898b7ee593a8db6e2fc5e43a3c Mon Sep 17 00:00:00 2001 From: An Qi Date: Mon, 23 Sep 2024 15:33:56 +0800 Subject: [PATCH 07/33] refactor(dataSource): rename FileStore to FileSystem (#451) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 替换名字 --- .github/actions/confWriter/action.yml | 8 +- .github/actions/dbConfWriter/action.yml | 4 +- .github/actions/dbRunner/action.yml | 6 +- .../startup/{filestore.sh => filesystem.sh} | 2 +- .github/scripts/test/cli/test_outfile.sh | 4 +- .../scripts/test/cli/test_outfile_macos.sh | 4 +- .../scripts/test/cli/test_outfile_windows.sh | 4 +- .github/workflows/DB-CE.yml | 2 +- .github/workflows/remote-test.yml | 2 +- .../workflows/standalone-test-pushdown.yml | 2 +- .github/workflows/standalone-test.yml | 6 +- .github/workflows/tpc-h.yml | 2 +- assembly/pom.xml | 6 +- ...driver.xml => iginx-filesystem-driver.xml} | 4 +- assembly/src/assembly/include.xml | 2 +- assembly/src/assembly/server.xml | 2 +- conf/config.properties | 4 +- .../cn/edu/tsinghua/iginx/IginxWorker.java | 6 +- .../cn/edu/tsinghua/iginx/conf/Config.java | 2 +- .../tsinghua/iginx/conf/ConfigDescriptor.java | 2 +- .../cn/edu/tsinghua/iginx/conf/Constants.java | 2 +- .../metadata/utils/StorageEngineUtils.java | 2 +- .../iginx/metadata/entity/ExtraParamTest.java | 4 +- .../tsinghua/iginx/filestore/FileStorage.java | 384 ------------------ dataSource/{filestore => filesystem}/pom.xml | 4 +- .../iginx/filesystem/FileSystemStorage.java} | 82 ++-- .../filesystem}/common/AbstractConfig.java | 2 +- .../iginx/filesystem}/common/Closeables.java | 2 +- .../iginx/filesystem}/common/Configs.java | 2 +- .../iginx/filesystem}/common/DataUnits.java | 4 +- .../iginx/filesystem}/common/Fields.java | 2 +- .../common/FileSystemException.java} | 10 +- .../common/FileSystemRowStream.java} | 12 +- .../iginx/filesystem}/common/Filters.java | 2 +- .../iginx/filesystem}/common/IginxPaths.java | 2 +- .../iginx/filesystem}/common/Patterns.java | 2 +- .../iginx/filesystem}/common/Ranges.java | 2 +- .../iginx/filesystem}/common/RowStreams.java | 2 +- .../iginx/filesystem}/common/Strings.java | 2 +- .../format/AbstractFileFormat.java | 2 +- .../iginx/filesystem}/format/FileFormat.java | 2 +- .../filesystem}/format/FileFormatManager.java | 2 +- .../format/parquet/FilterUtils.java | 4 +- .../format/parquet/IGroupConverter.java | 2 +- .../format/parquet/IParquetReader.java | 4 +- .../format/parquet/IParquetWriter.java | 8 +- .../filesystem}/format/parquet/IRecord.java | 2 +- .../format/parquet/IRecordDematerializer.java | 2 +- .../format/parquet/IRecordMaterializer.java | 2 +- .../format/parquet/ParquetFormat.java | 4 +- .../format/parquet/ParquetFormatReader.java | 10 +- .../parquet/ParquetFormatRowStream.java | 22 +- .../format/parquet/ProjectUtils.java | 8 +- .../filesystem}/format/raw/RawFormat.java | 4 +- .../format/raw/RawFormatRowStream.java | 22 +- .../filesystem}/format/raw/RawReader.java | 10 +- .../format/raw/RawReaderConfig.java | 4 +- .../filesystem/service/FileSystemConfig.java} | 20 +- .../service/FileSystemService.java} | 34 +- .../iginx/filesystem}/service/Service.java | 28 +- .../service/rpc/client/ClientConfig.java | 6 +- .../rpc/client/ClientObjectMappingUtils.java | 6 +- .../client/RemoteFileSystemException.java} | 8 +- .../service/rpc/client/RemoteService.java | 44 +- .../service/rpc/client/TSocketPool.java | 10 +- .../rpc/client/pool/ForwardTTransport.java | 2 +- .../rpc/client/pool/PooledTTransport.java | 2 +- .../rpc/client/pool/TTransportPool.java | 4 +- .../rpc/client/pool/TTransportPoolConfig.java | 4 +- .../rpc/client/transport/TSocketFactory.java | 4 +- .../client/transport/TTransportFactory.java | 2 +- .../service/rpc/server/Server.java | 12 +- .../rpc/server/ServerObjectMappingUtils.java | 12 +- .../service/rpc/server/ServerWorker.java | 28 +- .../service/storage/StorageConfig.java | 8 +- .../service/storage/StorageService.java | 56 +-- .../iginx/filesystem}/struct/DataTarget.java | 2 +- .../iginx/filesystem}/struct/FileManager.java | 4 +- .../filesystem}/struct/FileStructure.java | 2 +- .../struct/FileStructureManager.java | 2 +- .../exception/FileStructureException.java | 2 +- .../struct/exception/NoSuchUnitException.java | 2 +- .../legacy/filesystem/LegacyFilesystem.java | 12 +- .../filesystem/LegacyFilesystemWrapper.java | 16 +- ...FileSystemTaskExecuteFailureException.java | 2 +- .../exception/FilesystemException.java | 2 +- .../legacy/filesystem/exec/Executor.java | 2 +- .../filesystem/exec/FileSystemManager.java | 18 +- .../legacy/filesystem/exec/LocalExecutor.java | 24 +- .../filesystem/file/DefaultFileOperator.java | 12 +- .../legacy/filesystem/file/IFileOperator.java | 6 +- .../filesystem/file/entity/FileMeta.java | 4 +- .../FileSystemHistoryQueryRowStream.java | 8 +- .../entity/FileSystemQueryRowStream.java | 6 +- .../query/entity/FileSystemResultTable.java | 2 +- .../filesystem/query/entity/Record.java | 2 +- .../legacy/filesystem/shared/Constant.java | 2 +- .../legacy/filesystem/shared/FileType.java | 2 +- .../filesystem/tools/FilePathUtils.java | 4 +- .../filesystem/tools/LimitedSizeMap.java | 2 +- .../legacy/filesystem/tools/MemoryPool.java | 2 +- .../struct/legacy/parquet/LegacyParquet.java | 12 +- .../legacy/parquet/LegacyParquetWrapper.java | 22 +- .../struct/legacy/parquet/db/Database.java | 8 +- .../legacy/parquet/db/lsm/OneTierDB.java | 40 +- .../legacy/parquet/db/lsm/api/ReadWriter.java | 6 +- .../legacy/parquet/db/lsm/api/TableMeta.java | 2 +- .../parquet/db/lsm/buffer/ActiveMemTable.java | 22 +- .../db/lsm/buffer/ArchivedMemTable.java | 8 +- .../parquet/db/lsm/buffer/DataBuffer.java | 12 +- .../parquet/db/lsm/buffer/MemColumn.java | 10 +- .../parquet/db/lsm/buffer/MemTable.java | 10 +- .../parquet/db/lsm/buffer/MemTableQueue.java | 22 +- .../parquet/db/lsm/buffer/chunk/Chunk.java | 6 +- .../db/lsm/buffer/chunk/IndexedChunk.java | 4 +- .../db/lsm/buffer/chunk/IndexedChunkType.java | 2 +- .../db/lsm/buffer/chunk/NoIndexChunk.java | 4 +- .../db/lsm/buffer/chunk/SkipListChunk.java | 4 +- .../lsm/buffer/conflict/ConflictResolver.java | 6 +- .../buffer/conflict/ConflictResolverType.java | 2 +- .../db/lsm/buffer/conflict/NoneResolver.java | 6 +- .../conflict/RecursiveTryLockResolver.java | 6 +- .../buffer/conflict/ThreadPoolResolver.java | 6 +- .../lsm/buffer/conflict/TryLockResolver.java | 6 +- .../parquet/db/lsm/compact/Flusher.java | 12 +- .../parquet/db/lsm/table/DeletedTable.java | 10 +- .../db/lsm/table/DeletedTableMeta.java | 6 +- .../parquet/db/lsm/table/FileTable.java | 8 +- .../parquet/db/lsm/table/MemoryTable.java | 18 +- .../legacy/parquet/db/lsm/table/Table.java | 10 +- .../parquet/db/lsm/table/TableIndex.java | 12 +- .../parquet/db/lsm/table/TableStorage.java | 26 +- .../legacy/parquet/db/util/AreaSet.java | 2 +- .../parquet/db/util/SequenceGenerator.java | 2 +- .../legacy/parquet/db/util/WriteBatches.java | 16 +- .../db/util/iterator/AreaFilterScanner.java | 6 +- .../db/util/iterator/BatchPlaneScanner.java | 4 +- .../util/iterator/ColumnUnionRowScanner.java | 4 +- .../db/util/iterator/ConcatScanner.java | 4 +- .../db/util/iterator/DelegateScanner.java | 4 +- .../db/util/iterator/EmptyScanner.java | 4 +- .../db/util/iterator/EmtpyHeadRowScanner.java | 4 +- .../db/util/iterator/IteratorScanner.java | 2 +- .../db/util/iterator/LazyRowScanner.java | 4 +- .../db/util/iterator/ListenCloseScanner.java | 4 +- .../db/util/iterator/RowConcatScanner.java | 2 +- .../db/util/iterator/RowScannerFactory.java | 4 +- .../db/util/iterator/RowUnionScanner.java | 4 +- .../parquet/db/util/iterator/Scanner.java | 4 +- .../parquet/db/util/iterator/SizeUtils.java | 2 +- .../legacy/parquet/manager/Manager.java | 2 +- .../manager/data/AggregatedRowStream.java | 2 +- .../parquet/manager/data/DataManager.java | 24 +- .../parquet/manager/data/DataViewWrapper.java | 8 +- .../manager/data/FilterRangeUtils.java | 2 +- .../parquet/manager/data/LongFormat.java | 2 +- .../parquet/manager/data/ObjectFormat.java | 2 +- .../manager/data/ParquetReadWriter.java | 34 +- .../parquet/manager/data/ProjectUtils.java | 4 +- .../manager/data/ScannerRowStream.java | 4 +- .../parquet/manager/data/SerializeUtils.java | 6 +- .../parquet/manager/data/SizeUtils.java | 2 +- .../parquet/manager/data/StringFormat.java | 2 +- .../manager/data/TombstoneStorage.java | 12 +- .../legacy/parquet/manager/dummy/Column.java | 2 +- .../legacy/parquet/manager/dummy/Field.java | 2 +- .../legacy/parquet/manager/dummy/Loader.java | 6 +- .../manager/dummy/NewQueryRowStream.java | 4 +- .../legacy/parquet/manager/dummy/Storer.java | 8 +- .../legacy/parquet/manager/dummy/Table.java | 4 +- .../parquet/manager/utils/RangeUtils.java | 2 +- .../parquet/manager/utils/TagKVUtils.java | 2 +- .../struct/legacy/parquet/util/Awaitable.java | 2 +- .../struct/legacy/parquet/util/CachePool.java | 2 +- .../legacy/parquet/util/CloseableHolders.java | 2 +- .../struct/legacy/parquet/util/Constants.java | 2 +- .../parquet/util/NoexceptAutoCloseable.java | 2 +- .../parquet/util/NoexceptAutoCloseables.java | 2 +- .../legacy/parquet/util/ParseUtils.java | 2 +- .../struct/legacy/parquet/util/Shared.java | 2 +- .../legacy/parquet/util/SingleCache.java | 2 +- .../parquet/util/StorageProperties.java | 8 +- .../parquet/util/arrow/ArrowFieldTypes.java | 2 +- .../parquet/util/arrow/ArrowFields.java | 8 +- .../legacy/parquet/util/arrow/ArrowTypes.java | 2 +- .../parquet/util/arrow/ArrowVectors.java | 2 +- .../exception/InvalidFieldNameException.java | 2 +- .../util/exception/IsClosedException.java | 2 +- .../util/exception/NotIntegrityException.java | 2 +- .../util/exception/SchemaException.java | 2 +- .../exception/StorageClosedException.java | 2 +- .../util/exception/StorageException.java | 2 +- .../exception/StorageRuntimeException.java | 2 +- .../util/exception/TimeoutException.java | 2 +- .../exception/TypeConflictedException.java | 2 +- .../exception/UnsupportedFilterException.java | 2 +- .../parquet/util/iterator/DedupIterator.java | 2 +- .../util/iterator/StableMergeIterator.java | 2 +- .../filesystem}/struct/tree/FileTree.java | 6 +- .../struct/tree/FileTreeConfig.java | 4 +- .../struct/tree/FileTreeManager.java | 16 +- .../struct/tree/query/AbstractQuerier.java | 4 +- .../struct/tree/query/Querier.java | 6 +- .../struct/tree/query/Queriers.java | 10 +- .../struct/tree/query/ftj/FormatQuerier.java | 16 +- .../tree/query/ftj/FormatQuerierBuilder.java | 10 +- .../ftj/FormatQuerierBuilderFactory.java | 14 +- .../tree/query/ftj/UnionDirectoryQuerier.java | 12 +- .../ftj/UnionDirectoryQuerierBuilder.java | 20 +- .../UnionDirectoryQuerierBuilderFactory.java | 8 +- .../tree/query/ftj/UnionFormatTree.java | 8 +- .../filesystem}/struct/units/UnitsMerger.java | 12 +- .../src/main/thrift/core.thrift | 0 .../src/main/thrift/filesystem.thrift} | 6 +- .../iginx/filesystem}/common/FiltersTest.java | 2 +- .../format/parquet/ParquetTestUtils.java | 4 +- .../iginx/filesystem}/server/ServerTest.java | 4 +- .../service/AbstractServiceTest.java | 8 +- .../remote/AbstractRemoteServiceTest.java | 12 +- .../LegacyParquetRemoteServiceTest.java | 4 +- .../service/storage/AbstractDummyTest.java | 20 +- .../storage/AbstractHistoryDataTest.java | 22 +- .../storage/AbstractStorageServiceTest.java | 8 +- .../service/storage/FileTreeDummyTest.java | 16 +- .../storage/FileTreeParquetDummyTest.java | 14 +- .../storage/LegacyParquetHistoryDataTest.java | 4 +- .../LegacyParquetStorageServiceTest.java | 4 +- .../db/common/utils/SerializeUtilsTest.java | 10 +- .../parquet/io/ParquetFormatIOTest.java | 16 +- .../manager/data/FilterRangeUtilsTest.java | 2 +- .../struct/tree/FileTreeConfigTest.java | 8 +- .../iginx/filesystem}/test/DataValidator.java | 2 +- .../filesystem}/test/DataViewGenerator.java | 2 +- .../iginx/filesystem}/test/RowsBuilder.java | 2 +- .../iginx/filesystem}/test/TableBuilder.java | 2 +- .../src/test/resources/log4j2-test.properties | 0 dataSource/pom.xml | 2 +- docker/oneShot-filestore/Dockerfile | 2 +- pom.xml | 2 +- session_py/file_example.py | 2 +- .../iginx/iginx_pyclient/thrift/rpc/ttypes.py | 6 +- .../iginx/exception/package-info.java | 8 +- test/pom.xml | 4 +- .../expansion/BaseCapacityExpansionIT.java | 10 +- .../expansion/constant/Constant.java | 2 +- .../FileSystemCapacityExpansionIT.java} | 30 +- .../FileSystemHistoryDataGenerator.java} | 27 +- .../integration/func/session/PySessionIT.java | 18 +- .../integration/func/udf/TransformIT.java | 2 +- test/src/test/resources/pySessionIT/tests.py | 6 +- test/src/test/resources/testConfig.properties | 12 +- thrift/src/main/thrift/rpc.thrift | 2 +- 252 files changed, 909 insertions(+), 1292 deletions(-) rename .github/scripts/dataSources/startup/{filestore.sh => filesystem.sh} (94%) rename assembly/src/assembly/component/{iginx-filestore-driver.xml => iginx-filesystem-driver.xml} (93%) delete mode 100644 dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStorage.java rename dataSource/{filestore => filesystem}/pom.xml (99%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStoreStorage.java => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/FileSystemStorage.java} (83%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/AbstractConfig.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/Closeables.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/Configs.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/DataUnits.java (90%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/Fields.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/FileStoreException.java => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemException.java} (77%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/FileStoreRowStream.java => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemRowStream.java} (73%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/Filters.java (99%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/IginxPaths.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/Patterns.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/Ranges.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/RowStreams.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/common/Strings.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/AbstractFileFormat.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/FileFormat.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/FileFormatManager.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/FilterUtils.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/IGroupConverter.java (99%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/IParquetReader.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/IParquetWriter.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/IRecord.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/IRecordDematerializer.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/IRecordMaterializer.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/ParquetFormat.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/ParquetFormatReader.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/ParquetFormatRowStream.java (80%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/ProjectUtils.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/raw/RawFormat.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/raw/RawFormatRowStream.java (85%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/raw/RawReader.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/format/raw/RawReaderConfig.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/FileStoreConfig.java => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemConfig.java} (79%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/FileStoreService.java => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemService.java} (74%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/Service.java (69%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/ClientConfig.java (88%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/ClientObjectMappingUtils.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/RemoteFileStoreException.java => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteFileSystemException.java} (74%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/RemoteService.java (79%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/TSocketPool.java (78%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/pool/ForwardTTransport.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/pool/PooledTTransport.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/pool/TTransportPool.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/pool/TTransportPoolConfig.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/transport/TSocketFactory.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/client/transport/TTransportFactory.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/server/Server.java (87%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/server/ServerObjectMappingUtils.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/rpc/server/ServerWorker.java (78%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/StorageConfig.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/StorageService.java (87%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/DataTarget.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/FileManager.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/FileStructure.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/FileStructureManager.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/exception/FileStructureException.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/exception/NoSuchUnitException.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/LegacyFilesystem.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/LegacyFilesystemWrapper.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/exception/FilesystemException.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/exec/Executor.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/exec/FileSystemManager.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/exec/LocalExecutor.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/file/DefaultFileOperator.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/file/IFileOperator.java (86%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/file/entity/FileMeta.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/query/entity/FileSystemResultTable.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/query/entity/Record.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/shared/Constant.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/shared/FileType.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/tools/FilePathUtils.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/tools/LimitedSizeMap.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/filesystem/tools/MemoryPool.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/LegacyParquet.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/LegacyParquetWrapper.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/Database.java (84%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/OneTierDB.java (80%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/api/ReadWriter.java (85%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/api/TableMeta.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java (88%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/MemColumn.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/MemTable.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java (76%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java (79%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java (83%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java (90%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/compact/Flusher.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/table/DeletedTable.java (78%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/table/FileTable.java (86%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/table/MemoryTable.java (88%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/table/Table.java (79%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/table/TableIndex.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/lsm/table/TableStorage.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/AreaSet.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/SequenceGenerator.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/WriteBatches.java (88%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/ConcatScanner.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/DelegateScanner.java (87%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/EmptyScanner.java (88%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java (88%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/IteratorScanner.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java (89%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java (86%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java (90%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java (83%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/Scanner.java (84%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/util/iterator/SizeUtils.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/Manager.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/AggregatedRowStream.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/DataManager.java (86%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/DataViewWrapper.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/FilterRangeUtils.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/LongFormat.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/ObjectFormat.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/ParquetReadWriter.java (90%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/ProjectUtils.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/ScannerRowStream.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/SerializeUtils.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/SizeUtils.java (90%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/StringFormat.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/TombstoneStorage.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/dummy/Column.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/dummy/Field.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/dummy/Loader.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/dummy/Storer.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/dummy/Table.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/utils/RangeUtils.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/utils/TagKVUtils.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/Awaitable.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/CachePool.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/CloseableHolders.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/Constants.java (96%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/NoexceptAutoCloseable.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/NoexceptAutoCloseables.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/ParseUtils.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/Shared.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/SingleCache.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/StorageProperties.java (98%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/arrow/ArrowFields.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/arrow/ArrowTypes.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/arrow/ArrowVectors.java (99%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/InvalidFieldNameException.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/IsClosedException.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/NotIntegrityException.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/SchemaException.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/StorageClosedException.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/StorageException.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/StorageRuntimeException.java (93%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/TimeoutException.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/TypeConflictedException.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/exception/UnsupportedFilterException.java (94%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/iterator/DedupIterator.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/util/iterator/StableMergeIterator.java (97%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/FileTree.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/FileTreeConfig.java (95%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/FileTreeManager.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/AbstractQuerier.java (91%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/Querier.java (87%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/Queriers.java (92%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/ftj/FormatQuerier.java (86%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/ftj/FormatQuerierBuilder.java (82%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/ftj/FormatQuerierBuilderFactory.java (80%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/ftj/UnionDirectoryQuerier.java (82%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java (88%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java (84%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/query/ftj/UnionFormatTree.java (84%) rename dataSource/{filestore/src/main/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem}/struct/units/UnitsMerger.java (92%) rename dataSource/{filestore => filesystem}/src/main/thrift/core.thrift (100%) rename dataSource/{filestore/src/main/thrift/filestore.thrift => filesystem/src/main/thrift/filesystem.thrift} (95%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/common/FiltersTest.java (97%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/format/parquet/ParquetTestUtils.java (93%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/server/ServerTest.java (93%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/AbstractServiceTest.java (91%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/remote/AbstractRemoteServiceTest.java (80%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/remote/LegacyParquetRemoteServiceTest.java (87%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/AbstractDummyTest.java (88%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/AbstractHistoryDataTest.java (93%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/AbstractStorageServiceTest.java (87%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/FileTreeDummyTest.java (96%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/FileTreeParquetDummyTest.java (93%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/LegacyParquetHistoryDataTest.java (88%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/service/storage/LegacyParquetStorageServiceTest.java (87%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java (87%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/io/ParquetFormatIOTest.java (95%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java (96%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/struct/tree/FileTreeConfigTest.java (93%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/test/DataValidator.java (98%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/test/DataViewGenerator.java (98%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/test/RowsBuilder.java (98%) rename dataSource/{filestore/src/test/java/cn/edu/tsinghua/iginx/filestore => filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem}/test/TableBuilder.java (98%) rename dataSource/{filestore => filesystem}/src/test/resources/log4j2-test.properties (100%) rename test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/{filestore/FileStoreCapacityExpansionIT.java => filesystem/FileSystemCapacityExpansionIT.java} (93%) rename test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/{filestore/FileStoreHistoryDataGenerator.java => filesystem/FileSystemHistoryDataGenerator.java} (88%) diff --git a/.github/actions/confWriter/action.yml b/.github/actions/confWriter/action.yml index 32c7cce516..dfa7ff1e1f 100644 --- a/.github/actions/confWriter/action.yml +++ b/.github/actions/confWriter/action.yml @@ -33,14 +33,14 @@ inputs: runs: using: "composite" # Mandatory parameter steps: - - if: inputs.DB-name=='FileStore' - name: save config for FileStore + - if: inputs.DB-name=='FileSystem' + name: save config for FileSystem shell: bash run: | cp -f "${{ inputs.Root-Dir-Path }}/conf/config.properties" "${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties" - - if: inputs.DB-name=='FileStore' - name: save config for FileStore + - if: inputs.DB-name=='FileSystem' + name: save config for FileSystem shell: bash run: | cp -f "${{ inputs.Root-Dir-Path }}/conf/config.properties" "${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties" diff --git a/.github/actions/dbConfWriter/action.yml b/.github/actions/dbConfWriter/action.yml index a48ec85db5..7c863cbed8 100644 --- a/.github/actions/dbConfWriter/action.yml +++ b/.github/actions/dbConfWriter/action.yml @@ -47,13 +47,13 @@ runs: paths: ${{ inputs.Root-Dir-Path }}/conf/config.properties statements: s/#storageEngineList=127.0.0.1#8086/storageEngineList=127.0.0.1#8086/g - - if: inputs.DB-name == 'FileStore' + - if: inputs.DB-name == 'FileSystem' name: Modify IGinX Config uses: ./.github/actions/edit with: paths: ${{ inputs.Root-Dir-Path }}/conf/config.properties statements: | - s/^#storageEngineList=127.0.0.1#6667#filestore/storageEngineList=127.0.0.1#6667#filestore/g + s/^#storageEngineList=127.0.0.1#6667#filesystem/storageEngineList=127.0.0.1#6667#filesystem/g s#dir=data#dir=${PWD}/test/iginx_mn#g s/data.config.write.buffer.size=104857600/data.config.write.buffer.size=1048576/g s/write.buffer.size=104857600/write.buffer.size=1048576/g diff --git a/.github/actions/dbRunner/action.yml b/.github/actions/dbRunner/action.yml index 845b74ad6e..62bae11cc2 100644 --- a/.github/actions/dbRunner/action.yml +++ b/.github/actions/dbRunner/action.yml @@ -169,19 +169,19 @@ runs: paths: conf/config.properties statements: s|^#storageEngineList=127.0.0.1#3306#relational#engine=mysql#username=root#password=mysql#has_data=false#meta_properties_path=your-meta-properties-path|storageEngineList=127.0.0.1#3306#relational#engine=mysql#username=root#has_data=false#meta_properties_path=${{ steps.mysql-properties.outputs.path }}|g - - if: inputs.DB-name=='FileStore' + - if: inputs.DB-name=='FileSystem' name: Run DB shell: bash run: | cp -f "${GITHUB_WORKSPACE}/conf/config.properties" "${GITHUB_WORKSPACE}/conf/config.properties.bak" - - if: inputs.DB-name == 'FileStore' + - if: inputs.DB-name == 'FileSystem' name: Modify IGinX Config uses: ./.github/actions/edit with: paths: conf/config.properties statements: | - s/^#storageEngineList=127.0.0.1#6667#filestore/storageEngineList=127.0.0.1#6667#filestore/g + s/^#storageEngineList=127.0.0.1#6667#filesystem/storageEngineList=127.0.0.1#6667#filesystem/g s#dir=data#dir=${{ steps.project.outputs.workspace }}/test/iginx_mn#g s#dummy_dir=dummy#dummy_dir=${{ steps.project.outputs.workspace }}/test/mn#g s/data.config.write.buffer.size=104857600/data.config.write.buffer.size=1048576/g diff --git a/.github/scripts/dataSources/startup/filestore.sh b/.github/scripts/dataSources/startup/filesystem.sh similarity index 94% rename from .github/scripts/dataSources/startup/filestore.sh rename to .github/scripts/dataSources/startup/filesystem.sh index 9bbe00b4bb..e1e8640491 100644 --- a/.github/scripts/dataSources/startup/filestore.sh +++ b/.github/scripts/dataSources/startup/filesystem.sh @@ -24,7 +24,7 @@ cp -f conf/config.properties.bak $7 sed -i"" -e "s/^storageEngineList=127.0.0.1#6667#iotdb12/#storageEngineList=127.0.0.1#6667#iotdb12/" $7 -sed -i"" -e "s/^#storageEngineList=127.0.0.1#6667#filestore/storageEngineList=127.0.0.1#$1#filestore/g" $7 +sed -i"" -e "s/^#storageEngineList=127.0.0.1#6667#filesystem/storageEngineList=127.0.0.1#$1#filesystem/g" $7 sed -i"" -e "s/#iginx_port=6888#/#iginx_port=$2#/g" $7 diff --git a/.github/scripts/test/cli/test_outfile.sh b/.github/scripts/test/cli/test_outfile.sh index ea95ac2341..6cce23937b 100644 --- a/.github/scripts/test/cli/test_outfile.sh +++ b/.github/scripts/test/cli/test_outfile.sh @@ -53,13 +53,13 @@ for file in test/src/test/resources/fileReadAndWrite/byteDummy/*; do mv "$file" "${file}.ext" done -bash -c "echo 'ADD STORAGEENGINE ("'"127.0.0.1"'", 6670, "'"filestore"'", "'"dummy_dir:test/src/test/resources/fileReadAndWrite/byteDummy,iginx_port:6888,has_data:true,is_read_only:true"'");show columns byteDummy.*;' | ${SCRIPT_COMMAND}" +bash -c "echo 'ADD STORAGEENGINE ("'"127.0.0.1"'", 6670, "'"filesystem"'", "'"dummy_dir:test/src/test/resources/fileReadAndWrite/byteDummy,iginx_port:6888,has_data:true,is_read_only:true"'");show columns byteDummy.*;' | ${SCRIPT_COMMAND}" bash -c "echo 'select * from byteDummy into outfile "'"test/src/test/resources/fileReadAndWrite/byteStreamExport"'" as stream;' | ${SCRIPT_COMMAND}" db_name=$1 -if [[ "$db_name" != "FileStore" ]]; then +if [[ "$db_name" != "FileSystem" ]]; then exit 0 fi diff --git a/.github/scripts/test/cli/test_outfile_macos.sh b/.github/scripts/test/cli/test_outfile_macos.sh index ebe28b05ef..45448ec9e0 100644 --- a/.github/scripts/test/cli/test_outfile_macos.sh +++ b/.github/scripts/test/cli/test_outfile_macos.sh @@ -53,13 +53,13 @@ for file in test/src/test/resources/fileReadAndWrite/byteDummy/*; do mv "$file" "${file}.ext" done -bash -c "echo 'ADD STORAGEENGINE ("'"127.0.0.1"'", 6670, "'"filestore"'", "'"dummy_dir:test/src/test/resources/fileReadAndWrite/byteDummy,iginx_port:6888,has_data:true,is_read_only:true"'");show columns byteDummy.*;' | ${SCRIPT_COMMAND}" +bash -c "echo 'ADD STORAGEENGINE ("'"127.0.0.1"'", 6670, "'"filesystem"'", "'"dummy_dir:test/src/test/resources/fileReadAndWrite/byteDummy,iginx_port:6888,has_data:true,is_read_only:true"'");show columns byteDummy.*;' | ${SCRIPT_COMMAND}" bash -c "echo 'select * from byteDummy into outfile "'"test/src/test/resources/fileReadAndWrite/byteStreamExport"'" as stream;' | ${SCRIPT_COMMAND}" db_name=$1 -if [[ "$db_name" != "FileStore" ]]; then +if [[ "$db_name" != "FileSystem" ]]; then exit 0 fi diff --git a/.github/scripts/test/cli/test_outfile_windows.sh b/.github/scripts/test/cli/test_outfile_windows.sh index fc87d57055..c7f949b4e7 100644 --- a/.github/scripts/test/cli/test_outfile_windows.sh +++ b/.github/scripts/test/cli/test_outfile_windows.sh @@ -57,13 +57,13 @@ for file in test/src/test/resources/fileReadAndWrite/byteDummy/*; do mv "$file" "${file}.ext" done -bash -c "client/target/iginx-client-$2/sbin/start_cli.bat -e 'ADD STORAGEENGINE ("'"127.0.0.1"'", 6670, "'"filestore"'", "'"dummy_dir:test/src/test/resources/fileReadAndWrite/byteDummy,iginx_port:6888,has_data:true,is_read_only:true"'");show columns byteDummy.*;'" +bash -c "client/target/iginx-client-$2/sbin/start_cli.bat -e 'ADD STORAGEENGINE ("'"127.0.0.1"'", 6670, "'"filesystem"'", "'"dummy_dir:test/src/test/resources/fileReadAndWrite/byteDummy,iginx_port:6888,has_data:true,is_read_only:true"'");show columns byteDummy.*;'" bash -c "client/target/iginx-client-$2/sbin/start_cli.bat -e 'select * from byteDummy into outfile "'"test/src/test/resources/fileReadAndWrite/byteStreamExport"'" as stream;'" db_name=$1 -if [[ "$db_name" != "FileStore" ]]; then +if [[ "$db_name" != "FileSystem" ]]; then exit 0 fi diff --git a/.github/workflows/DB-CE.yml b/.github/workflows/DB-CE.yml index 45f8e7fabb..f2762e7950 100644 --- a/.github/workflows/DB-CE.yml +++ b/.github/workflows/DB-CE.yml @@ -27,7 +27,7 @@ on: description: "The database to run the test on" type: string required: false - default: '["IoTDB12", "InfluxDB", "FileStore", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' + default: '["IoTDB12", "InfluxDB", "FileSystem", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' env: FUNCTEST: NewSessionIT,SQLCompareIT,TagIT,RestIT,TransformIT,UDFIT,RestAnnotationIT,SQLSessionIT,SQLSessionPoolIT,SessionV2IT,SessionIT,SessionPoolIT,CompactionIT,TimePrecisionIT,PySessionIT diff --git a/.github/workflows/remote-test.yml b/.github/workflows/remote-test.yml index c76bd0cd9e..b171046e40 100644 --- a/.github/workflows/remote-test.yml +++ b/.github/workflows/remote-test.yml @@ -26,7 +26,7 @@ on: description: "The database to run the test on" type: string required: false - default: '["IoTDB12", "FileStore"]' + default: '["IoTDB12", "FileSystem"]' env: FUNCTEST: RemoteUDFIT diff --git a/.github/workflows/standalone-test-pushdown.yml b/.github/workflows/standalone-test-pushdown.yml index 0b39a9f2d4..f02bd6c55a 100644 --- a/.github/workflows/standalone-test-pushdown.yml +++ b/.github/workflows/standalone-test-pushdown.yml @@ -27,7 +27,7 @@ on: description: "The database to run the test on" type: string required: false - default: '["IoTDB12", "InfluxDB", "FileStore", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' + default: '["IoTDB12", "InfluxDB", "FileSystem", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' jobs: Union-DB-Test-Push_Down: diff --git a/.github/workflows/standalone-test.yml b/.github/workflows/standalone-test.yml index 3c18573053..c68492372f 100644 --- a/.github/workflows/standalone-test.yml +++ b/.github/workflows/standalone-test.yml @@ -27,7 +27,7 @@ on: description: "The database to run the test on" type: string required: false - default: '["IoTDB12", "InfluxDB", "FileStore", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' + default: '["IoTDB12", "InfluxDB", "FileSystem", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' jobs: Union-DB-Test: @@ -106,12 +106,12 @@ jobs: shell: client-before # TODO: extract it to a separate job to test - # large image export only tested in FileStore + # large image export only tested in FileSystem - name: Test Client Export File if: always() shell: bash run: | - if [[ "${{ matrix.DB-name }}" == "FileStore" ]]; then + if [[ "${{ matrix.DB-name }}" == "FileSystem" ]]; then mvn test -q -Dtest=ExportFileIT -DfailIfNoTests=false -P-format else mvn test -q -Dtest=ExportFileIT#checkExportByteStream -DfailIfNoTests=false -P-format diff --git a/.github/workflows/tpc-h.yml b/.github/workflows/tpc-h.yml index c2ceabd0de..854ba2c275 100644 --- a/.github/workflows/tpc-h.yml +++ b/.github/workflows/tpc-h.yml @@ -27,7 +27,7 @@ on: description: "The database to run the test on" type: string required: false - default: '["IoTDB12", "InfluxDB", "FileStore", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' + default: '["IoTDB12", "InfluxDB", "FileSystem", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' jobs: TPC-H-Test: diff --git a/assembly/pom.xml b/assembly/pom.xml index f0a0b17853..e191224eac 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -44,7 +44,7 @@ cn.edu.tsinghua - filestore + filesystem cn.edu.tsinghua @@ -175,8 +175,8 @@ #storageEngineList=127.0.0.1#6667#iotdb - #storageEngineList=127.0.0.1#6667#filestore.* - storageEngineList=127.0.0.1#6667#filestore#dir=data#iginx_port=6888 + #storageEngineList=127.0.0.1#6667#filesystem.* + storageEngineList=127.0.0.1#6667#filesystem#dir=data#iginx_port=6888 UD[ATS]F,.*,.*,.*[.]py diff --git a/assembly/src/assembly/component/iginx-filestore-driver.xml b/assembly/src/assembly/component/iginx-filesystem-driver.xml similarity index 93% rename from assembly/src/assembly/component/iginx-filestore-driver.xml rename to assembly/src/assembly/component/iginx-filesystem-driver.xml index 7861b8f878..f75b8d4ff2 100644 --- a/assembly/src/assembly/component/iginx-filestore-driver.xml +++ b/assembly/src/assembly/component/iginx-filesystem-driver.xml @@ -23,13 +23,13 @@ true - cn.edu.tsinghua:filestore + cn.edu.tsinghua:filesystem false - ${project.build.directory}/filestore-${project.version} + ${project.build.directory}/filesystem-${project.version} / diff --git a/assembly/src/assembly/include.xml b/assembly/src/assembly/include.xml index 5f54f9800f..5aa0d8b005 100644 --- a/assembly/src/assembly/include.xml +++ b/assembly/src/assembly/include.xml @@ -28,7 +28,7 @@ src/assembly/component/iginx-core.xml src/assembly/component/iginx-iotdb12-driver.xml - src/assembly/component/iginx-filestore-driver.xml + src/assembly/component/iginx-filesystem-driver.xml src/assembly/component/include-zookeeper.xml diff --git a/assembly/src/assembly/server.xml b/assembly/src/assembly/server.xml index 24a46390ba..10b108b485 100644 --- a/assembly/src/assembly/server.xml +++ b/assembly/src/assembly/server.xml @@ -27,7 +27,7 @@ false src/assembly/component/iginx-core.xml - src/assembly/component/iginx-filestore-driver.xml + src/assembly/component/iginx-filesystem-driver.xml src/assembly/component/iginx-influxdb-driver.xml src/assembly/component/iginx-iotdb12-driver.xml src/assembly/component/iginx-mongodb-driver.xml diff --git a/conf/config.properties b/conf/config.properties index 0f4b87b39c..2317db27f1 100644 --- a/conf/config.properties +++ b/conf/config.properties @@ -34,7 +34,7 @@ password=root # 数据库列表,使用','分隔不同实例 storageEngineList=127.0.0.1#6667#iotdb12#username=root#password=root#sessionPoolSize=20#has_data=false#is_read_only=false #storageEngineList=127.0.0.1#8086#influxdb#url=http://localhost:8086/#token=your-token#organization=your-organization#has_data=false -#storageEngineList=127.0.0.1#6667#filestore#iginx_port=6888#has_data=false#is_read_only=false#dir=data#data.config.write.buffer.size=104857600#data.config.write.buffer.timeout=0#dummy_dir=dummy#dummy.struct=LegacyFilesystem#dummy.config.chunk_size_in_bytes=1048576#dummy.config.memory_pool_size=100#client.connectPool.maxTotal=100 +#storageEngineList=127.0.0.1#6667#filesystem#iginx_port=6888#has_data=false#is_read_only=false#dir=data#data.config.write.buffer.size=104857600#data.config.write.buffer.timeout=0#dummy_dir=dummy#dummy.struct=LegacyFilesystem#dummy.config.chunk_size_in_bytes=1048576#dummy.config.memory_pool_size=100#client.connectPool.maxTotal=100 #storageEngineList=127.0.0.1#5432#relational#engine=postgresql#username=postgres#password=postgres#has_data=false #storageEngineList=127.0.0.1#3306#relational#engine=mysql#username=root#password=mysql#has_data=false#meta_properties_path=your-meta-properties-path #storageEngineList=127.0.0.1#27017#mongodb#uri="mongodb://127.0.0.1:27017/?maxPoolSize=200&maxIdleTimeMS=60000&waitQueueTimeoutMS=50000"#has_data=false#schema.sample.size=1000#dummy.sample.size=0 @@ -51,7 +51,7 @@ defaultUDFDir=udf_funcs replicaNum=0 # 底层数据库类名 -databaseClassNames=iotdb12=cn.edu.tsinghua.iginx.iotdb.IoTDBStorage,influxdb=cn.edu.tsinghua.iginx.influxdb.InfluxDBStorage,filestore=cn.edu.tsinghua.iginx.filestore.FileStoreStorage,relational=cn.edu.tsinghua.iginx.relational.RelationalStorage,mongodb=cn.edu.tsinghua.iginx.mongodb.MongoDBStorage,redis=cn.edu.tsinghua.iginx.redis.RedisStorage +databaseClassNames=iotdb12=cn.edu.tsinghua.iginx.iotdb.IoTDBStorage,influxdb=cn.edu.tsinghua.iginx.influxdb.InfluxDBStorage,filesystem=cn.edu.tsinghua.iginx.filesystem.FileSystemStorage,relational=cn.edu.tsinghua.iginx.relational.RelationalStorage,mongodb=cn.edu.tsinghua.iginx.mongodb.MongoDBStorage,redis=cn.edu.tsinghua.iginx.redis.RedisStorage # 内存任务执行线程池 memoryTaskThreadPoolSize=200 diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java index dca2c79857..4785230a70 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java @@ -81,7 +81,7 @@ public class IginxWorker implements IService.Iface { private static final Config config = ConfigDescriptor.getInstance().getConfig(); private IginxWorker() { - // if there are new local filestore in conf, add them to cluster. + // if there are new local filesystem in conf, add them to cluster. if (!addLocalStorageEngineMetas()) { LOGGER.error("there are no valid storage engines!"); System.exit(-1); @@ -459,8 +459,8 @@ private void addStorageEngineMetas( } } - // init local filestore before adding to meta - // exclude remote filestore + // init local filesystem before adding to meta + // exclude remote filesystem List localMetas = new ArrayList<>(); List otherMetas = new ArrayList<>(); for (StorageEngineMeta meta : storageEngineMetas) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java index b0e0581f16..2695490666 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java @@ -52,7 +52,7 @@ public class Config { private TimePrecision timePrecision = TimePrecision.NS; private String databaseClassNames = - "iotdb12=cn.edu.tsinghua.iginx.iotdb.IoTDBStorage,influxdb=cn.edu.tsinghua.iginx.influxdb.InfluxDBStorage,relational=cn.edu.tsinghua.iginx.relational.RelationalStorage,mongodb=cn.edu.tsinghua.iginx.mongodb.MongoDBStorage,redis=cn.edu.tsinghua.iginx.redis.RedisStorage,filestore=cn.edu.tsinghua.iginx.filestore.FileStorage"; + "iotdb12=cn.edu.tsinghua.iginx.iotdb.IoTDBStorage,influxdb=cn.edu.tsinghua.iginx.influxdb.InfluxDBStorage,relational=cn.edu.tsinghua.iginx.relational.RelationalStorage,mongodb=cn.edu.tsinghua.iginx.mongodb.MongoDBStorage,redis=cn.edu.tsinghua.iginx.redis.RedisStorage,filesystem=cn.edu.tsinghua.iginx.filesystem.FileSystemStorage"; private String policyClassName = "cn.edu.tsinghua.iginx.policy.naive.NaivePolicy"; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/ConfigDescriptor.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/ConfigDescriptor.java index 07ad4537eb..455e406197 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/ConfigDescriptor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/ConfigDescriptor.java @@ -85,7 +85,7 @@ private void loadPropsFromFile() { config.setDatabaseClassNames( properties.getProperty( "databaseClassNames", - "iotdb12=cn.edu.tsinghua.iginx.iotdb.IoTDBStorage,influxdb=cn.edu.tsinghua.iginx.influxdb.InfluxDBStorage,relational=cn.edu.tsinghua.iginx.relational.RelationalStorage,mongodb=cn.edu.tsinghua.iginx.mongodb.MongoDBStorage,redis=cn.edu.tsinghua.iginx.redis.RedisStorage,filestore=cn.edu.tsinghua.iginx.filestore.FileStorage")); + "iotdb12=cn.edu.tsinghua.iginx.iotdb.IoTDBStorage,influxdb=cn.edu.tsinghua.iginx.influxdb.InfluxDBStorage,relational=cn.edu.tsinghua.iginx.relational.RelationalStorage,mongodb=cn.edu.tsinghua.iginx.mongodb.MongoDBStorage,redis=cn.edu.tsinghua.iginx.redis.RedisStorage,filesystem=cn.edu.tsinghua.iginx.filesystem.FileSystemStorage")); config.setPolicyClassName( properties.getProperty( diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Constants.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Constants.java index b7e5b23f6d..b1b033da3e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Constants.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Constants.java @@ -58,7 +58,7 @@ public class Constants { public static final String DATA_PREFIX = "data_prefix"; - // especially for embedded storage engines: filestore + // especially for embedded storage engines: filesystem public static final String EMBEDDED_PREFIX = "embedded_prefix"; public static final String SCHEMA_PREFIX = "schema_prefix"; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/StorageEngineUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/StorageEngineUtils.java index 2e168e8f97..e513f5fbf5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/StorageEngineUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/StorageEngineUtils.java @@ -33,7 +33,7 @@ public class StorageEngineUtils { public static boolean isEmbeddedStorageEngine(StorageEngineType type) { - return type.equals(StorageEngineType.filestore); + return type.equals(StorageEngineType.filesystem); } private static boolean isDirValid(String dir) { diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ExtraParamTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ExtraParamTest.java index c898947d36..f4ea3e190d 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ExtraParamTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ExtraParamTest.java @@ -95,9 +95,9 @@ private void runParamTest( extraParam.put(DUMMY_DIR, dummyDir); } if (valid) { - assertTrue(checkEmbeddedStorageExtraParams(StorageEngineType.filestore, extraParam)); + assertTrue(checkEmbeddedStorageExtraParams(StorageEngineType.filesystem, extraParam)); } else { - assertFalse(checkEmbeddedStorageExtraParams(StorageEngineType.filestore, extraParam)); + assertFalse(checkEmbeddedStorageExtraParams(StorageEngineType.filesystem, extraParam)); } } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStorage.java b/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStorage.java deleted file mode 100644 index 4b4cf28156..0000000000 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStorage.java +++ /dev/null @@ -1,384 +0,0 @@ -/* - * IGinX - the polystore system with high performance - * Copyright (C) Tsinghua University - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package cn.edu.tsinghua.iginx.filestore; - -import static cn.edu.tsinghua.iginx.metadata.utils.StorageEngineUtils.isLocal; - -import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; -import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalTaskExecuteFailureException; -import cn.edu.tsinghua.iginx.engine.physical.exception.StorageInitializationException; -import cn.edu.tsinghua.iginx.engine.physical.storage.IStorage; -import cn.edu.tsinghua.iginx.engine.physical.storage.domain.Column; -import cn.edu.tsinghua.iginx.engine.physical.storage.domain.DataArea; -import cn.edu.tsinghua.iginx.engine.physical.task.TaskExecuteResult; -import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; -import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; -import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; -import cn.edu.tsinghua.iginx.engine.shared.function.Function; -import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; -import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; -import cn.edu.tsinghua.iginx.engine.shared.function.FunctionType; -import cn.edu.tsinghua.iginx.engine.shared.operator.*; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; -import cn.edu.tsinghua.iginx.filestore.common.Configs; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.common.Filters; -import cn.edu.tsinghua.iginx.filestore.service.FileStoreConfig; -import cn.edu.tsinghua.iginx.filestore.service.FileStoreService; -import cn.edu.tsinghua.iginx.filestore.service.storage.StorageConfig; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructure; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructureManager; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.LegacyFilesystem; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.LegacyParquet; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; -import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; -import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; -import cn.edu.tsinghua.iginx.metadata.entity.StorageEngineMeta; -import cn.edu.tsinghua.iginx.thrift.AggregateType; -import cn.edu.tsinghua.iginx.thrift.StorageEngineType; -import cn.edu.tsinghua.iginx.utils.Pair; -import com.google.common.base.Strings; -import com.typesafe.config.Config; -import com.typesafe.config.ConfigFactory; -import java.net.InetSocketAddress; -import java.util.*; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import javax.annotation.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class FileStorage implements IStorage { - - private static final Logger LOGGER = LoggerFactory.getLogger(FileStorage.class); - - private final FileStoreService service; - - private final FileStoreConfig fileStoreConfig; - - private final ExecutorService executor = Executors.newCachedThreadPool(); - - private final boolean isLegacyParquet; - - static { - Collection structures = FileStructureManager.getInstance().getAll(); - LOGGER.info("found file structures: {}", structures); - } - - public FileStorage(StorageEngineMeta meta) throws StorageInitializationException { - if (!meta.getStorageEngine().equals(StorageEngineType.filestore)) { - throw new StorageInitializationException("unexpected database: " + meta.getStorageEngine()); - } - - String dataStructPath = - String.join(".", FileStoreConfig.Fields.data, StorageConfig.Fields.struct); - isLegacyParquet = - LegacyParquet.NAME.equals( - meta.getExtraParams().getOrDefault(dataStructPath, LegacyParquet.NAME)); - - InetSocketAddress address = new InetSocketAddress(meta.getIp(), meta.getPort()); - this.fileStoreConfig = toFileStoreConfig(meta); - try { - this.service = new FileStoreService(address, fileStoreConfig); - } catch (FileStoreException e) { - throw new StorageInitializationException("file store initialization error", e); - } - } - - static FileStoreConfig toFileStoreConfig(StorageEngineMeta meta) - throws StorageInitializationException { - Config rawConfig = toConfig(meta); - LOGGER.debug("storage of {} config: {}", meta, rawConfig); - FileStoreConfig fileStoreConfig = FileStoreConfig.of(rawConfig); - LOGGER.debug("storage of {} will be initialized with {}", meta, fileStoreConfig); - List problems = fileStoreConfig.validate(); - if (!problems.isEmpty()) { - throw new StorageInitializationException("invalided config: " + problems); - } - return fileStoreConfig; - } - - static Config toConfig(StorageEngineMeta meta) throws StorageInitializationException { - HashMap reshaped = new HashMap<>(); - - for (Map.Entry param : meta.getExtraParams().entrySet()) { - String key = param.getKey(); - String value = param.getValue(); - if (key.contains(".")) { - reshaped.put(key, value); - } - } - - Configs.put( - reshaped, - meta.getExtraParams().get("dir"), - FileStoreConfig.Fields.data, - StorageConfig.Fields.root); - Configs.put( - reshaped, - meta.getExtraParams().get("dummy_dir"), - FileStoreConfig.Fields.dummy, - StorageConfig.Fields.root); - Configs.put( - reshaped, - meta.getExtraParams().get("embedded_prefix"), - FileStoreConfig.Fields.dummy, - StorageConfig.Fields.config, - FileTreeConfig.Fields.prefix); - Configs.putIfAbsent( - reshaped, LegacyParquet.NAME, FileStoreConfig.Fields.data, StorageConfig.Fields.struct); - Configs.putIfAbsent( - reshaped, LegacyFilesystem.NAME, FileStoreConfig.Fields.dummy, StorageConfig.Fields.struct); - - boolean local = isLocal(meta); - reshaped.put(FileStoreConfig.Fields.serve, String.valueOf(local)); - - Config config = ConfigFactory.parseMap(reshaped, "storage engine initialization parameters"); - - if (local) { - LOGGER.debug("storage of {} is local, ignore config for remote", meta); - config = config.withoutPath(FileStoreConfig.Fields.client); - - if (!meta.isHasData()) { - LOGGER.debug("storage of {} don't have data, ignore config for dummy", meta); - config = config.withoutPath(FileStoreConfig.Fields.dummy); - } - - if (meta.isReadOnly()) { - LOGGER.debug("storage of {} is read only, ignore config for iginx data", meta); - config = config.withoutPath(FileStoreConfig.Fields.data); - } - } else { - LOGGER.debug("storage of {} is remote, ignore config for local", meta); - config = config.withoutPath(FileStoreConfig.Fields.data); - config = config.withoutPath(FileStoreConfig.Fields.dummy); - } - - return config; - } - - @Override - public TaskExecuteResult executeProject(Project project, DataArea dataArea) { - return executeQuery(unitOf(dataArea), getDataTargetOf(project, dataArea), null); - } - - @Override - public TaskExecuteResult executeProjectDummy(Project project, DataArea dataArea) { - return executeQuery(unitOfDummy(), getDataTargetOf(project, dataArea), null); - } - - @Override - public boolean isSupportProjectWithSelect() { - return true; - } - - @Override - public TaskExecuteResult executeProjectWithSelect( - Project project, Select select, DataArea dataArea) { - return executeQuery(unitOf(dataArea), getDataTargetOf(select, project, dataArea), null); - } - - @Override - public TaskExecuteResult executeProjectDummyWithSelect( - Project project, Select select, DataArea dataArea) { - return executeQuery(unitOfDummy(), getDataTargetOf(select, project, dataArea), null); - } - - @Override - public boolean isSupportProjectWithSetTransform(SetTransform setTransform, DataArea dataArea) { - if (!isLegacyParquet) { - return false; - } - - // just push down in full column fragment - KeyInterval keyInterval = dataArea.getKeyInterval(); - if (keyInterval.getStartKey() > 0 || keyInterval.getEndKey() < Long.MAX_VALUE) { - return false; - } - - // just push down count(*) for now - List functionCalls = setTransform.getFunctionCallList(); - if (functionCalls.size() != 1) { - return false; - } - FunctionCall functionCall = functionCalls.get(0); - Function function = functionCall.getFunction(); - FunctionParams params = functionCall.getParams(); - if (function.getFunctionType() != FunctionType.System) { - return false; - } - if (!function.getIdentifier().equals("count")) { - return false; - } - if (params.getPaths().size() != 1) { - return false; - } - String path = params.getPaths().get(0); - return path.equals("*") || path.equals("*.*"); - } - - @Override - public TaskExecuteResult executeProjectWithSetTransform( - Project project, SetTransform setTransform, DataArea dataArea) { - if (!isSupportProjectWithSetTransform(setTransform, dataArea)) { - throw new IllegalArgumentException("unsupported set transform"); - } - - DataArea reshapedDataArea = - new DataArea(dataArea.getStorageUnit(), KeyInterval.getDefaultKeyInterval()); - - return executeQuery( - unitOf(dataArea), getDataTargetOf(project, reshapedDataArea), AggregateType.COUNT); - } - - @Override - public TaskExecuteResult executeDelete(Delete delete, DataArea dataArea) { - Filter filter; - if (delete.getKeyRanges() == null || delete.getKeyRanges().isEmpty()) { - filter = null; - } else { - filter = Filters.toFilter(delete.getKeyRanges()); - } - try { - service.delete( - unitOf(dataArea), new DataTarget(filter, delete.getPatterns(), delete.getTagFilter())); - return new TaskExecuteResult(); - } catch (PhysicalException e) { - return new TaskExecuteResult(e); - } - } - - @Override - public TaskExecuteResult executeInsert(Insert insert, DataArea dataArea) { - try { - service.insert(unitOf(dataArea), insert.getData()); - return new TaskExecuteResult(); - } catch (PhysicalException e) { - return new TaskExecuteResult(e); - } - } - - @Override - public List getColumns(Set patterns, TagFilter tagFilter) - throws PhysicalException { - List columns = Collections.synchronizedList(new ArrayList<>()); - List columnsWrapper = Collections.synchronizedList(columns); - - Map units = service.getUnits(null); - - List patternList = new ArrayList<>(patterns); - if (patternList.isEmpty()) { - patternList = null; - } - - DataTarget dataTarget = new DataTarget(new BoolFilter(false), patternList, tagFilter); - - List> futures = new ArrayList<>(); - for (DataUnit unit : units.keySet()) { - CompletableFuture future = - CompletableFuture.supplyAsync( - () -> { - List localColumns = new ArrayList<>(); - try (RowStream stream = service.query(unit, dataTarget, null)) { - Header header = stream.getHeader(); - for (Field field : header.getFields()) { - localColumns.add( - new Column( - field.getName(), field.getType(), field.getTags(), unit.isDummy())); - } - } catch (PhysicalException e) { - throw new CompletionException(e); - } - return localColumns; - }, - executor) - .thenAccept(columnsWrapper::addAll); - futures.add(future); - } - - try { - CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); - } catch (CompletionException e) { - throw new FileStoreException(e); - } - - return columns; - } - - @Override - public Pair getBoundaryOfStorage(String prefix) - throws PhysicalException { - Map units = service.getUnits(Strings.emptyToNull(prefix)); - DataBoundary boundary = units.get(unitOfDummy()); - if (Objects.equals(boundary, new DataBoundary())) { - throw new PhysicalTaskExecuteFailureException("no data"); - } - ColumnsInterval columnsInterval = - new ColumnsInterval(boundary.getStartColumn(), boundary.getEndColumn()); - KeyInterval keyInterval = new KeyInterval(boundary.getStartKey(), boundary.getEndKey()); - return new Pair<>(columnsInterval, keyInterval); - } - - @Override - public void release() throws PhysicalException { - service.close(); - executor.shutdown(); - } - - private static DataUnit unitOf(DataArea dataArea) { - DataUnit dataUnit = new DataUnit(); - dataUnit.setDummy(false); - dataUnit.setName(dataArea.getStorageUnit()); - return dataUnit; - } - - private static DataUnit unitOfDummy() { - DataUnit dataUnit = new DataUnit(); - dataUnit.setDummy(true); - return dataUnit; - } - - private static DataTarget getDataTargetOf(Project project, DataArea dataArea) { - Filter filter = Filters.toFilter(dataArea.getKeyInterval()); - return new DataTarget(filter, project.getPatterns(), project.getTagFilter()); - } - - private static DataTarget getDataTargetOf(Select select, Project project, DataArea dataArea) { - Filter rangeFilter = Filters.toFilter(dataArea.getKeyInterval()); - Filter filter = Filters.nullableAnd(rangeFilter, select.getFilter()); - return new DataTarget(filter, project.getPatterns(), project.getTagFilter()); - } - - public TaskExecuteResult executeQuery( - DataUnit unit, DataTarget target, @Nullable AggregateType aggregateType) { - try { - RowStream stream = service.query(unit, target, aggregateType); - return new TaskExecuteResult(stream); - } catch (PhysicalException e) { - return new TaskExecuteResult(e); - } - } -} diff --git a/dataSource/filestore/pom.xml b/dataSource/filesystem/pom.xml similarity index 99% rename from dataSource/filestore/pom.xml rename to dataSource/filesystem/pom.xml index d10455f818..74901f7bf9 100644 --- a/dataSource/filestore/pom.xml +++ b/dataSource/filesystem/pom.xml @@ -28,8 +28,8 @@ ${revision} - filestore - IGinX FileStore + filesystem + IGinX FileSystem diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStoreStorage.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/FileSystemStorage.java similarity index 83% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStoreStorage.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/FileSystemStorage.java index 0daccd4099..873b093e16 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/FileStoreStorage.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/FileSystemStorage.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore; +package cn.edu.tsinghua.iginx.filesystem; import static cn.edu.tsinghua.iginx.metadata.utils.StorageEngineUtils.isLocal; @@ -37,20 +37,20 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; -import cn.edu.tsinghua.iginx.filestore.common.Configs; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.common.Filters; -import cn.edu.tsinghua.iginx.filestore.service.FileStoreConfig; -import cn.edu.tsinghua.iginx.filestore.service.FileStoreService; -import cn.edu.tsinghua.iginx.filestore.service.storage.StorageConfig; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructure; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructureManager; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.LegacyParquet; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filesystem.common.Configs; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.common.Filters; +import cn.edu.tsinghua.iginx.filesystem.service.FileSystemConfig; +import cn.edu.tsinghua.iginx.filesystem.service.FileSystemService; +import cn.edu.tsinghua.iginx.filesystem.service.storage.StorageConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructure; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructureManager; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.LegacyParquet; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; import cn.edu.tsinghua.iginx.metadata.entity.StorageEngineMeta; @@ -70,13 +70,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class FileStoreStorage implements IStorage { +public class FileSystemStorage implements IStorage { - private static final Logger LOGGER = LoggerFactory.getLogger(FileStoreStorage.class); + private static final Logger LOGGER = LoggerFactory.getLogger(FileSystemStorage.class); - private final FileStoreService service; + private final FileSystemService service; - private final FileStoreConfig fileStoreConfig; + private final FileSystemConfig fileSystemConfig; private final ExecutorService executor = Executors.newCachedThreadPool(); @@ -87,37 +87,37 @@ public class FileStoreStorage implements IStorage { LOGGER.info("found file structures: {}", structures); } - public FileStoreStorage(StorageEngineMeta meta) throws StorageInitializationException { - if (!meta.getStorageEngine().equals(StorageEngineType.filestore)) { + public FileSystemStorage(StorageEngineMeta meta) throws StorageInitializationException { + if (!meta.getStorageEngine().equals(StorageEngineType.filesystem)) { throw new StorageInitializationException("unexpected database: " + meta.getStorageEngine()); } String dataStructPath = - String.join(".", FileStoreConfig.Fields.data, StorageConfig.Fields.struct); + String.join(".", FileSystemConfig.Fields.data, StorageConfig.Fields.struct); isLegacyParquet = LegacyParquet.NAME.equals( meta.getExtraParams().getOrDefault(dataStructPath, LegacyParquet.NAME)); InetSocketAddress address = new InetSocketAddress(meta.getIp(), meta.getPort()); - this.fileStoreConfig = toFileStoreConfig(meta); + this.fileSystemConfig = toFileSystemConfig(meta); try { - this.service = new FileStoreService(address, fileStoreConfig); - } catch (FileStoreException e) { + this.service = new FileSystemService(address, fileSystemConfig); + } catch (FileSystemException e) { throw new StorageInitializationException("file store initialization error", e); } } - static FileStoreConfig toFileStoreConfig(StorageEngineMeta meta) + static FileSystemConfig toFileSystemConfig(StorageEngineMeta meta) throws StorageInitializationException { Config rawConfig = toConfig(meta); LOGGER.debug("storage of {} config: {}", meta, rawConfig); - FileStoreConfig fileStoreConfig = FileStoreConfig.of(rawConfig); - LOGGER.debug("storage of {} will be initialized with {}", meta, fileStoreConfig); - List problems = fileStoreConfig.validate(); + FileSystemConfig fileSystemConfig = FileSystemConfig.of(rawConfig); + LOGGER.debug("storage of {} will be initialized with {}", meta, fileSystemConfig); + List problems = fileSystemConfig.validate(); if (!problems.isEmpty()) { throw new StorageInitializationException("invalided config: " + problems); } - return fileStoreConfig; + return fileSystemConfig; } static Config toConfig(StorageEngineMeta meta) throws StorageInitializationException { @@ -131,43 +131,43 @@ static Config toConfig(StorageEngineMeta meta) throws StorageInitializationExcep } } - Configs.put(reshaped, String.valueOf(isLocal(meta)), FileStoreConfig.Fields.serve); + Configs.put(reshaped, String.valueOf(isLocal(meta)), FileSystemConfig.Fields.serve); Configs.put( reshaped, meta.getExtraParams().get("dir"), - FileStoreConfig.Fields.data, + FileSystemConfig.Fields.data, StorageConfig.Fields.root); Configs.put( reshaped, meta.getExtraParams().get("dummy_dir"), - FileStoreConfig.Fields.dummy, + FileSystemConfig.Fields.dummy, StorageConfig.Fields.root); Configs.put( reshaped, meta.getExtraParams().get("embedded_prefix"), - FileStoreConfig.Fields.dummy, + FileSystemConfig.Fields.dummy, StorageConfig.Fields.config, FileTreeConfig.Fields.prefix); Configs.putIfAbsent( reshaped, - FileStoreConfig.DEFAULT_DATA_STRUCT, - FileStoreConfig.Fields.data, + FileSystemConfig.DEFAULT_DATA_STRUCT, + FileSystemConfig.Fields.data, StorageConfig.Fields.struct); Configs.putIfAbsent( reshaped, - FileStoreConfig.DEFAULT_DUMMY_STRUCT, - FileStoreConfig.Fields.dummy, + FileSystemConfig.DEFAULT_DUMMY_STRUCT, + FileSystemConfig.Fields.dummy, StorageConfig.Fields.struct); Config config = ConfigFactory.parseMap(reshaped, "storage engine initialization parameters"); if (!meta.isHasData()) { LOGGER.debug("storage of {} don't have data, ignore config for dummy", meta); - config = config.withoutPath(FileStoreConfig.Fields.dummy); + config = config.withoutPath(FileSystemConfig.Fields.dummy); } if (meta.isReadOnly()) { LOGGER.debug("storage of {} is read only, ignore config for iginx data", meta); - config = config.withoutPath(FileStoreConfig.Fields.data); + config = config.withoutPath(FileSystemConfig.Fields.data); } return config; @@ -315,7 +315,7 @@ public List getColumns(Set patterns, TagFilter tagFilter) try { CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); } catch (CompletionException e) { - throw new FileStoreException(e); + throw new FileSystemException(e); } return columns; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/AbstractConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/AbstractConfig.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/AbstractConfig.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/AbstractConfig.java index 3193fa913a..b29050db93 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/AbstractConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/AbstractConfig.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import com.google.common.collect.Range; import com.typesafe.config.Config; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Closeables.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Closeables.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Closeables.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Closeables.java index 4887c02314..4ca4435bbd 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Closeables.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Closeables.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import java.io.Closeable; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Configs.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Configs.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Configs.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Configs.java index 3fb7421a4f..e20e46100f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Configs.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Configs.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/DataUnits.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/DataUnits.java similarity index 90% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/DataUnits.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/DataUnits.java index 0db6781ba1..2690a9a4de 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/DataUnits.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/DataUnits.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import javax.annotation.Nullable; public class DataUnits { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Fields.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Fields.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Fields.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Fields.java index c736efadad..7a31140102 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Fields.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Fields.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.Column; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/FileStoreException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemException.java similarity index 77% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/FileStoreException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemException.java index 1338ee4657..fc88c43952 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/FileStoreException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemException.java @@ -15,21 +15,21 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; -public class FileStoreException extends PhysicalException { +public class FileSystemException extends PhysicalException { - public FileStoreException(String message) { + public FileSystemException(String message) { super(message); } - public FileStoreException(String message, Throwable cause) { + public FileSystemException(String message, Throwable cause) { super(message, cause); } - public FileStoreException(Throwable cause) { + public FileSystemException(Throwable cause) { super(cause); } } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/FileStoreRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemRowStream.java similarity index 73% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/FileStoreRowStream.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemRowStream.java index 24f7405f91..672994801a 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/FileStoreRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemRowStream.java @@ -15,23 +15,23 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; -public abstract class FileStoreRowStream implements RowStream { +public abstract class FileSystemRowStream implements RowStream { @Override - public abstract Header getHeader() throws FileStoreException; + public abstract Header getHeader() throws FileSystemException; @Override - public abstract void close() throws FileStoreException; + public abstract void close() throws FileSystemException; @Override - public abstract boolean hasNext() throws FileStoreException; + public abstract boolean hasNext() throws FileSystemException; @Override - public abstract Row next() throws FileStoreException; + public abstract Row next() throws FileSystemException; } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Filters.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java similarity index 99% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Filters.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java index 7b6c7c666e..f51f60febf 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Filters.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; import cn.edu.tsinghua.iginx.engine.shared.KeyRange; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/IginxPaths.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/IginxPaths.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/IginxPaths.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/IginxPaths.java index 7d87e4cf5c..869d24ef21 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/IginxPaths.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/IginxPaths.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import com.google.common.collect.Iterables; import java.nio.file.FileSystem; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Patterns.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Patterns.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Patterns.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Patterns.java index d893adf27c..3ad70ac78c 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Patterns.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Patterns.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import cn.edu.tsinghua.iginx.utils.StringUtils; import com.google.common.base.Strings; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Ranges.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Ranges.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Ranges.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Ranges.java index 974901a76f..302bd8424c 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Ranges.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Ranges.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import cn.edu.tsinghua.iginx.engine.shared.KeyRange; import com.google.common.collect.BoundType; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/RowStreams.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/RowStreams.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/RowStreams.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/RowStreams.java index ec8b6b9cdd..034fe6eae6 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/RowStreams.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/RowStreams.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream.EmptyRowStream; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Strings.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Strings.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Strings.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Strings.java index e65eb7ff57..f4b966603a 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/common/Strings.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Strings.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import java.util.regex.Pattern; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/AbstractFileFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/AbstractFileFormat.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/AbstractFileFormat.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/AbstractFileFormat.java index 419fef68b5..2bf5f45099 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/AbstractFileFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/AbstractFileFormat.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format; +package cn.edu.tsinghua.iginx.filesystem.format; import com.google.common.collect.Lists; import java.util.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/FileFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormat.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/FileFormat.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormat.java index 531631e0e9..f01c8c4efc 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/FileFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormat.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format; +package cn.edu.tsinghua.iginx.filesystem.format; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/FileFormatManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormatManager.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/FileFormatManager.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormatManager.java index 94a4ad8fb0..bd1c9d29b2 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/FileFormatManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormatManager.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format; +package cn.edu.tsinghua.iginx.filesystem.format; import java.util.Collection; import java.util.Collections; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/FilterUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/FilterUtils.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/FilterUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/FilterUtils.java index d6c5438ed6..c20f6d2618 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/FilterUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/FilterUtils.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.OrFilter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; import cn.edu.tsinghua.iginx.utils.Pair; import java.util.Objects; import shaded.iginx.org.apache.parquet.filter2.predicate.FilterApi; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IGroupConverter.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IGroupConverter.java similarity index 99% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IGroupConverter.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IGroupConverter.java index b8beaa4690..95fc14de86 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IGroupConverter.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IGroupConverter.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import com.google.common.primitives.Ints; import com.google.common.primitives.Longs; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IParquetReader.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetReader.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IParquetReader.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetReader.java index ca3d5b5349..fb8cf2f2d7 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IParquetReader.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetReader.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; import cn.edu.tsinghua.iginx.thrift.DataType; import cn.edu.tsinghua.iginx.utils.Pair; import com.google.common.collect.Range; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IParquetWriter.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetWriter.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IParquetWriter.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetWriter.java index d4d5237bf1..f2a47e42f6 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IParquetWriter.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetWriter.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import java.io.Closeable; import java.io.IOException; import java.nio.file.Path; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecord.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecord.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecord.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecord.java index 3c145b42c9..3ef2d87563 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecord.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecord.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import java.util.*; import shaded.iginx.org.apache.parquet.io.api.Binary; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecordDematerializer.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordDematerializer.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecordDematerializer.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordDematerializer.java index eeff41b5a8..1ec4a4db60 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecordDematerializer.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordDematerializer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import java.util.Collections; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecordMaterializer.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordMaterializer.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecordMaterializer.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordMaterializer.java index 00adb5c3b6..09b705d85d 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/IRecordMaterializer.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordMaterializer.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import shaded.iginx.org.apache.parquet.io.api.GroupConverter; import shaded.iginx.org.apache.parquet.io.api.RecordMaterializer; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormat.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormat.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormat.java index c5a026524d..5934242a70 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormat.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; -import cn.edu.tsinghua.iginx.filestore.format.FileFormat; +import cn.edu.tsinghua.iginx.filesystem.format.FileFormat; import com.google.auto.service.AutoService; import com.typesafe.config.Config; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormatReader.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatReader.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormatReader.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatReader.java index 109e0700a6..5db250797b 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormatReader.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatReader.java @@ -15,15 +15,15 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.common.IginxPaths; -import cn.edu.tsinghua.iginx.filestore.common.Patterns; -import cn.edu.tsinghua.iginx.filestore.common.RowStreams; -import cn.edu.tsinghua.iginx.filestore.format.FileFormat; +import cn.edu.tsinghua.iginx.filesystem.common.IginxPaths; +import cn.edu.tsinghua.iginx.filesystem.common.Patterns; +import cn.edu.tsinghua.iginx.filesystem.common.RowStreams; +import cn.edu.tsinghua.iginx.filesystem.format.FileFormat; import cn.edu.tsinghua.iginx.thrift.DataType; import java.io.IOException; import java.util.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormatRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatRowStream.java similarity index 80% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormatRowStream.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatRowStream.java index da48352952..9a0747eda9 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetFormatRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatRowStream.java @@ -15,13 +15,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreRowStream; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemRowStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -29,7 +29,7 @@ import javax.annotation.WillCloseWhenClosed; import shaded.iginx.org.apache.parquet.schema.MessageType; -public class ParquetFormatRowStream extends FileStoreRowStream { +public class ParquetFormatRowStream extends FileSystemRowStream { private final IParquetReader reader; private final Header header; @@ -64,34 +64,34 @@ private Row fetchNext() throws IOException { } @Override - public Header getHeader() throws FileStoreException { + public Header getHeader() throws FileSystemException { return header; } @Override - public void close() throws FileStoreException { + public void close() throws FileSystemException { try { reader.close(); } catch (IOException e) { - throw new FileStoreException(e); + throw new FileSystemException(e); } } @Override - public boolean hasNext() throws FileStoreException { + public boolean hasNext() throws FileSystemException { return nextRow != null; } @Override - public Row next() throws FileStoreException { + public Row next() throws FileSystemException { if (nextRow == null) { - throw new FileStoreException("No more rows"); + throw new FileSystemException("No more rows"); } Row row = nextRow; try { nextRow = fetchNext(); } catch (IOException e) { - throw new FileStoreException(e); + throw new FileSystemException(e); } return row; } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ProjectUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ProjectUtils.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ProjectUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ProjectUtils.java index 7a1e992c50..c7b8d3074e 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ProjectUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ProjectUtils.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; -import static cn.edu.tsinghua.iginx.filestore.format.parquet.IRecordDematerializer.OBJECT_MODEL_NAME_VALUE; -import static cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy.Storer.getParquetType; +import static cn.edu.tsinghua.iginx.filesystem.format.parquet.IRecordDematerializer.OBJECT_MODEL_NAME_VALUE; +import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy.Storer.getParquetType; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.*; import javax.annotation.Nullable; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormat.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawFormat.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormat.java index 292258ae22..5fccc4764e 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormat.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.raw; +package cn.edu.tsinghua.iginx.filesystem.format.raw; -import cn.edu.tsinghua.iginx.filestore.format.FileFormat; +import cn.edu.tsinghua.iginx.filesystem.format.FileFormat; import com.google.auto.service.AutoService; import com.typesafe.config.Config; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawFormatRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormatRowStream.java similarity index 85% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawFormatRowStream.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormatRowStream.java index 8f2643dd7b..513cda0220 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawFormatRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormatRowStream.java @@ -15,13 +15,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.raw; +package cn.edu.tsinghua.iginx.filesystem.format.raw; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreRowStream; -import cn.edu.tsinghua.iginx.filestore.common.Ranges; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemRowStream; +import cn.edu.tsinghua.iginx.filesystem.common.Ranges; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; import java.io.IOException; @@ -35,7 +35,7 @@ import java.util.Queue; import javax.annotation.Nullable; -public class RawFormatRowStream extends FileStoreRowStream { +public class RawFormatRowStream extends FileSystemRowStream { private final Header header; private final FileChannel channel; @@ -63,26 +63,26 @@ public RawFormatRowStream(Header header, Path path, long pageSize, RangeSet. */ -package cn.edu.tsinghua.iginx.filestore.format.raw; +package cn.edu.tsinghua.iginx.filesystem.format.raw; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream.EmptyRowStream; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.common.Filters; -import cn.edu.tsinghua.iginx.filestore.common.Patterns; -import cn.edu.tsinghua.iginx.filestore.common.RowStreams; -import cn.edu.tsinghua.iginx.filestore.format.FileFormat; +import cn.edu.tsinghua.iginx.filesystem.common.Filters; +import cn.edu.tsinghua.iginx.filesystem.common.Patterns; +import cn.edu.tsinghua.iginx.filesystem.common.RowStreams; +import cn.edu.tsinghua.iginx.filesystem.format.FileFormat; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.RangeSet; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawReaderConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReaderConfig.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawReaderConfig.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReaderConfig.java index 1b156d82dd..6d3110e1b4 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/format/raw/RawReaderConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReaderConfig.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.raw; +package cn.edu.tsinghua.iginx.filesystem.format.raw; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filesystem.common.AbstractConfig; import com.typesafe.config.Config; import com.typesafe.config.ConfigMemorySize; import com.typesafe.config.Optional; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/FileStoreConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemConfig.java similarity index 79% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/FileStoreConfig.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemConfig.java index 70828b9338..3bb66175b9 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/FileStoreConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemConfig.java @@ -15,13 +15,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service; +package cn.edu.tsinghua.iginx.filesystem.service; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.ClientConfig; -import cn.edu.tsinghua.iginx.filestore.service.storage.StorageConfig; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.LegacyFilesystem; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.LegacyParquet; +import cn.edu.tsinghua.iginx.filesystem.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.ClientConfig; +import cn.edu.tsinghua.iginx.filesystem.service.storage.StorageConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.LegacyFilesystem; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.LegacyParquet; import com.typesafe.config.Config; import com.typesafe.config.Optional; import java.util.ArrayList; @@ -35,9 +35,9 @@ @Data @EqualsAndHashCode(callSuper = true) @FieldNameConstants -public class FileStoreConfig extends AbstractConfig { +public class FileSystemConfig extends AbstractConfig { - private static final Logger LOGGER = LoggerFactory.getLogger(FileStoreConfig.class); + private static final Logger LOGGER = LoggerFactory.getLogger(FileSystemConfig.class); public static final String DEFAULT_DATA_STRUCT = LegacyParquet.NAME; public static final String DEFAULT_DUMMY_STRUCT = LegacyFilesystem.NAME; @@ -71,8 +71,8 @@ public List validate() { return problems; } - public static FileStoreConfig of(Config config) { - FileStoreConfig result = of(config, FileStoreConfig.class); + public static FileSystemConfig of(Config config) { + FileSystemConfig result = of(config, FileSystemConfig.class); if (result.isServe()) { LOGGER.debug("storage of {} is local, ignore config for remote", config); diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/FileStoreService.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemService.java similarity index 74% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/FileStoreService.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemService.java index dea8fe8bd9..41a4bec9a1 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/FileStoreService.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemService.java @@ -15,17 +15,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service; +package cn.edu.tsinghua.iginx.filesystem.service; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.RemoteService; -import cn.edu.tsinghua.iginx.filestore.service.rpc.server.Server; -import cn.edu.tsinghua.iginx.filestore.service.storage.StorageService; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.RemoteService; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.server.Server; +import cn.edu.tsinghua.iginx.filesystem.service.storage.StorageService; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.thrift.AggregateType; import java.net.InetSocketAddress; import java.util.Map; @@ -34,15 +34,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class FileStoreService implements Service { +public class FileSystemService implements Service { - private static final Logger LOGGER = LoggerFactory.getLogger(FileStoreService.class); + private static final Logger LOGGER = LoggerFactory.getLogger(FileSystemService.class); private final Service service; private final Server server; - public FileStoreService(InetSocketAddress address, FileStoreConfig config) - throws FileStoreException { + public FileSystemService(InetSocketAddress address, FileSystemConfig config) + throws FileSystemException { if (config.isServe()) { this.service = new StorageService(config.getData(), config.getDummy()); Server temp = null; @@ -61,28 +61,28 @@ public FileStoreService(InetSocketAddress address, FileStoreConfig config) } @Override - public Map getUnits(@Nullable String prefix) throws FileStoreException { + public Map getUnits(@Nullable String prefix) throws FileSystemException { return service.getUnits(prefix); } @Override public RowStream query(DataUnit unit, DataTarget target, @Nullable AggregateType aggregate) - throws FileStoreException { + throws FileSystemException { return service.query(unit, target, aggregate); } @Override - public void delete(DataUnit unit, DataTarget target) throws FileStoreException { + public void delete(DataUnit unit, DataTarget target) throws FileSystemException { service.delete(unit, target); } @Override - public void insert(DataUnit unit, DataView dataView) throws FileStoreException { + public void insert(DataUnit unit, DataView dataView) throws FileSystemException { service.insert(unit, dataView); } @Override - public void close() throws FileStoreException { + public void close() throws FileSystemException { if (server != null) { server.close(); } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/Service.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/Service.java similarity index 69% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/Service.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/Service.java index c67bc7b90b..5d90f2139d 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/Service.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/Service.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service; +package cn.edu.tsinghua.iginx.filesystem.service; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.thrift.AggregateType; import java.util.Map; import javax.annotation.Nullable; @@ -35,9 +35,9 @@ public interface Service extends AutoCloseable { * * @param prefix filter path by prefix, null only if match all paths * @return the column boundary of data in the given iginx path prefix - * @throws FileStoreException if any exception occurs during the process + * @throws FileSystemException if any exception occurs during the process */ - Map getUnits(@Nullable String prefix) throws FileStoreException; + Map getUnits(@Nullable String prefix) throws FileSystemException; /** * Query data @@ -46,29 +46,29 @@ public interface Service extends AutoCloseable { * @param target the data target to query * @param aggregate the aggregate type of the query, null only if no aggregate * @return the result of the query - * @throws FileStoreException if any exception occurs during the process + * @throws FileSystemException if any exception occurs during the process */ RowStream query(DataUnit unit, DataTarget target, @Nullable AggregateType aggregate) - throws FileStoreException; + throws FileSystemException; /** * Delete data * * @param unit the storage unit to delete * @param target the data target to delete - * @throws FileStoreException if any exception occurs during the process + * @throws FileSystemException if any exception occurs during the process */ - void delete(DataUnit unit, DataTarget target) throws FileStoreException; + void delete(DataUnit unit, DataTarget target) throws FileSystemException; /** * Insert data * * @param unit the storage unit to insert * @param dataView the data to insert - * @throws FileStoreException if any exception occurs during the process + * @throws FileSystemException if any exception occurs during the process */ - void insert(DataUnit unit, DataView dataView) throws FileStoreException; + void insert(DataUnit unit, DataView dataView) throws FileSystemException; @Override - void close() throws FileStoreException; + void close() throws FileSystemException; } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/ClientConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientConfig.java similarity index 88% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/ClientConfig.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientConfig.java index 66c4885364..834ad5c85d 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/ClientConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientConfig.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool.TTransportPoolConfig; +import cn.edu.tsinghua.iginx.filesystem.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool.TTransportPoolConfig; import com.typesafe.config.Optional; import java.time.Duration; import java.util.Collections; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/ClientObjectMappingUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientObjectMappingUtils.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/ClientObjectMappingUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientObjectMappingUtils.java index a568d0ca56..ac79450d5a 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/ClientObjectMappingUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientObjectMappingUtils.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; @@ -27,8 +27,8 @@ import cn.edu.tsinghua.iginx.engine.shared.data.write.RawDataType; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.*; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.thrift.*; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.thrift.*; import cn.edu.tsinghua.iginx.thrift.*; import cn.edu.tsinghua.iginx.thrift.TagFilterType; import cn.edu.tsinghua.iginx.utils.Bitmap; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/RemoteFileStoreException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteFileSystemException.java similarity index 74% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/RemoteFileStoreException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteFileSystemException.java index 2beb729ad3..ce790bbdb1 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/RemoteFileStoreException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteFileSystemException.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; -public class RemoteFileStoreException extends FileStoreException { - public RemoteFileStoreException(String message, Throwable e) { +public class RemoteFileSystemException extends FileSystemException { + public RemoteFileSystemException(String message, Throwable e) { super(message, e); } } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/RemoteService.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteService.java similarity index 79% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/RemoteService.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteService.java index ff34157ee9..195c45bd23 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/RemoteService.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteService.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.service.Service; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool.PooledTTransport; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.thrift.*; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.service.Service; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool.PooledTTransport; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.thrift.*; import cn.edu.tsinghua.iginx.thrift.AggregateType; import java.net.InetSocketAddress; import java.util.Map; @@ -45,16 +45,16 @@ public RemoteService(InetSocketAddress address, ClientConfig config) { this.pool = new TSocketPool(address, config); } - private FileStoreRpc.Client wrapClient(TTransport transport) { - return new FileStoreRpc.Client(new TBinaryProtocol(transport)); + private FileSystemRpc.Client wrapClient(TTransport transport) { + return new FileSystemRpc.Client(new TBinaryProtocol(transport)); } - private void handleRpcException(String action, RpcException e) throws RemoteFileStoreException { + private void handleRpcException(String action, RpcException e) throws RemoteFileSystemException { String msg = String.format("failed to %s remotely: %s(%s)", action, e.getStatus(), e.getMessage()); switch (e.getStatus()) { - case FileStoreException: - throw new RemoteFileStoreException(msg, e); + case FileSystemException: + throw new RemoteFileSystemException(msg, e); case OK: case UnknownException: default: @@ -63,10 +63,10 @@ private void handleRpcException(String action, RpcException e) throws RemoteFile } @Override - public Map getUnits(@Nullable String prefix) throws FileStoreException { + public Map getUnits(@Nullable String prefix) throws FileSystemException { RawPrefix rawPrefix = ClientObjectMappingUtils.constructRawPrefix(prefix); try (PooledTTransport transport = pool.borrowObject()) { - FileStoreRpc.Client client = wrapClient(transport); + FileSystemRpc.Client client = wrapClient(transport); try { return client.getUnits(rawPrefix); } catch (Exception e) { @@ -79,17 +79,17 @@ public Map getUnits(@Nullable String prefix) throws File handleRpcException("get units", e); throw new IllegalStateException("unreachable", e); } catch (Exception e) { - throw new RemoteFileStoreException("failed to get storage units", e); + throw new RemoteFileSystemException("failed to get storage units", e); } } @Override public RowStream query(DataUnit unit, DataTarget target, @Nullable AggregateType aggregate) - throws FileStoreException { + throws FileSystemException { RawDataTarget rawTarget = ClientObjectMappingUtils.constructRawDataTarget(target); RawAggregate rawAggregate = ClientObjectMappingUtils.constructRawAggregate(aggregate); try (PooledTTransport transport = pool.borrowObject()) { - FileStoreRpc.Client client = wrapClient(transport); + FileSystemRpc.Client client = wrapClient(transport); try { RawDataSet dataSet = client.query(unit, rawTarget, rawAggregate); return ClientObjectMappingUtils.constructRowStream(dataSet); @@ -108,10 +108,10 @@ public RowStream query(DataUnit unit, DataTarget target, @Nullable AggregateType } @Override - public void delete(DataUnit dataUnit, DataTarget target) throws FileStoreException { + public void delete(DataUnit dataUnit, DataTarget target) throws FileSystemException { RawDataTarget rawTarget = ClientObjectMappingUtils.constructRawDataTarget(target); try (PooledTTransport transport = pool.borrowObject()) { - FileStoreRpc.Client client = wrapClient(transport); + FileSystemRpc.Client client = wrapClient(transport); try { client.delete(dataUnit, rawTarget); } catch (Exception e) { @@ -124,15 +124,15 @@ public void delete(DataUnit dataUnit, DataTarget target) throws FileStoreExcepti handleRpcException("delete", e); throw new IllegalStateException("unreachable", e); } catch (Exception e) { - throw new RemoteFileStoreException("failed to delete", e); + throw new RemoteFileSystemException("failed to delete", e); } } @Override - public void insert(DataUnit unit, DataView dataView) throws FileStoreException { + public void insert(DataUnit unit, DataView dataView) throws FileSystemException { RawInserted rawInserted = ClientObjectMappingUtils.constructRawInserted(dataView); try (PooledTTransport transport = pool.borrowObject()) { - FileStoreRpc.Client client = wrapClient(transport); + FileSystemRpc.Client client = wrapClient(transport); try { client.insert(unit, rawInserted); } catch (Exception e) { @@ -145,7 +145,7 @@ public void insert(DataUnit unit, DataView dataView) throws FileStoreException { handleRpcException("insert", e); throw new IllegalStateException("unreachable", e); } catch (Exception e) { - throw new RemoteFileStoreException("failed to insert", e); + throw new RemoteFileSystemException("failed to insert", e); } } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/TSocketPool.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/TSocketPool.java similarity index 78% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/TSocketPool.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/TSocketPool.java index ab0f77632b..dbab675c2b 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/TSocketPool.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/TSocketPool.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool.PooledTTransport; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool.TTransportPool; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool.TTransportPoolConfig; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.transport.TSocketFactory; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool.PooledTTransport; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool.TTransportPool; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool.TTransportPoolConfig; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.transport.TSocketFactory; import java.net.InetSocketAddress; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/ForwardTTransport.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/ForwardTTransport.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/ForwardTTransport.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/ForwardTTransport.java index d1c7cfdc79..3df2674a9c 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/ForwardTTransport.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/ForwardTTransport.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool; import java.nio.ByteBuffer; import java.util.Objects; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/PooledTTransport.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/PooledTTransport.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/PooledTTransport.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/PooledTTransport.java index ee0a094c8d..523b0ae0be 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/PooledTTransport.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/PooledTTransport.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool; import org.apache.commons.pool2.ObjectPool; import org.apache.thrift.transport.TTransport; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/TTransportPool.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPool.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/TTransportPool.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPool.java index 22a6678127..1da122a5c8 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/TTransportPool.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPool.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.transport.TTransportFactory; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.transport.TTransportFactory; import java.util.Objects; import lombok.Setter; import org.apache.commons.pool2.PooledObject; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/TTransportPoolConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPoolConfig.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/TTransportPoolConfig.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPoolConfig.java index 9352942a0e..695e793beb 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/pool/TTransportPoolConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPoolConfig.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client.pool; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filesystem.common.AbstractConfig; import com.typesafe.config.Optional; import java.time.Duration; import java.util.ArrayList; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/transport/TSocketFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TSocketFactory.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/transport/TSocketFactory.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TSocketFactory.java index 98a048e450..4b74eb13cd 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/transport/TSocketFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TSocketFactory.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client.transport; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.transport; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.ClientConfig; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.ClientConfig; import java.net.InetSocketAddress; import java.util.Objects; import org.apache.thrift.TConfiguration; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/transport/TTransportFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TTransportFactory.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/transport/TTransportFactory.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TTransportFactory.java index ac2d92ed54..c80c7d652c 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/client/transport/TTransportFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TTransportFactory.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.client.transport; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.transport; import org.apache.thrift.transport.TTransport; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/Server.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/Server.java similarity index 87% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/Server.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/Server.java index 3c90a8ce71..25c77311a0 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/Server.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/Server.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.server; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.server; import cn.edu.tsinghua.iginx.conf.Config; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; -import cn.edu.tsinghua.iginx.filestore.service.Service; -import cn.edu.tsinghua.iginx.filestore.thrift.FileStoreRpc; +import cn.edu.tsinghua.iginx.filesystem.service.Service; +import cn.edu.tsinghua.iginx.filesystem.thrift.FileSystemRpc; import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.net.InetSocketAddress; import java.util.concurrent.*; @@ -43,7 +43,7 @@ public Server(InetSocketAddress address, Service service) throws TTransportException, InterruptedException { LOGGER.info("starting thrift server at {}", address); TProcessor processor = - new FileStoreRpc.Processor(new ServerWorker(service)); + new FileSystemRpc.Processor(new ServerWorker(service)); Config config = ConfigDescriptor.getInstance().getConfig(); ExecutorService executorService = new ThreadPoolExecutor( @@ -53,7 +53,7 @@ public Server(InetSocketAddress address, Service service) TimeUnit.SECONDS, new SynchronousQueue<>(), new ThreadFactoryBuilder() - .setNameFormat("FileStoreServer(" + address + ")-%d") + .setNameFormat("FileSystemServer(" + address + ")-%d") .build()); TThreadPoolServer.Args args = new TThreadPoolServer.Args(new TServerSocket(address)) @@ -61,7 +61,7 @@ public Server(InetSocketAddress address, Service service) .executorService(executorService) .protocolFactory(new TBinaryProtocol.Factory()); this.server = new TThreadPoolServer(args); - new Thread(server::serve, "FileStoreServer(" + server + ")").start(); + new Thread(server::serve, "FileSystemServer(" + address + ")").start(); // wait for server to be ready // 因为这里有两个线程,如果由于某些原因在 server::serve 执行前就 close 了, // 那么 server 会不断 accept 失败而死循环 diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/ServerObjectMappingUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerObjectMappingUtils.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/ServerObjectMappingUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerObjectMappingUtils.java index 088075bbce..5bf2a38573 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/ServerObjectMappingUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerObjectMappingUtils.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.server; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.server; import static cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op.*; @@ -28,9 +28,9 @@ import cn.edu.tsinghua.iginx.engine.shared.data.write.*; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.*; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.thrift.*; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.thrift.*; import cn.edu.tsinghua.iginx.thrift.*; import cn.edu.tsinghua.iginx.utils.Bitmap; import cn.edu.tsinghua.iginx.utils.ByteUtils; @@ -238,14 +238,14 @@ public static AggregateType resolveRawAggregate(RawAggregate aggregate) { return aggregate.getType(); } - public static RawDataSet constructRawDataSet(RowStream rowStream) throws FileStoreException { + public static RawDataSet constructRawDataSet(RowStream rowStream) throws FileSystemException { try { RawHeader rawHeader = constructRawHeader(rowStream.getHeader()); List rawRows = constructRawRows(rowStream, rawHeader); return new RawDataSet(rawHeader, rawRows); } catch (PhysicalException e) { - throw new FileStoreException(e); + throw new FileSystemException(e); } } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/ServerWorker.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerWorker.java similarity index 78% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/ServerWorker.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerWorker.java index 707887e078..bb60081d9d 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/rpc/server/ServerWorker.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerWorker.java @@ -15,21 +15,21 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.rpc.server; +package cn.edu.tsinghua.iginx.filesystem.service.rpc.server; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.service.Service; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.thrift.*; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.service.Service; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.thrift.*; import cn.edu.tsinghua.iginx.thrift.AggregateType; import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ServerWorker implements FileStoreRpc.Iface { +public class ServerWorker implements FileSystemRpc.Iface { private static final Logger LOGGER = LoggerFactory.getLogger(ServerWorker.class); @@ -51,9 +51,9 @@ public Map getUnits(RawPrefix prefix) throws RpcExceptio result.put(dataUnit, dataBoundary); } return result; - } catch (FileStoreException e) { + } catch (FileSystemException e) { LOGGER.error("failed to getUnits({})", prefix, e); - throw new RpcException(Status.FileStoreException, e.getMessage()); + throw new RpcException(Status.FileSystemException, e.getMessage()); } } @@ -65,9 +65,9 @@ public RawDataSet query(DataUnit unit, RawDataTarget target, RawAggregate aggreg try { RowStream rowStream = service.query(unit, dataTarget, aggregateType); return ServerObjectMappingUtils.constructRawDataSet(rowStream); - } catch (FileStoreException e) { + } catch (FileSystemException e) { LOGGER.error("failed to query({}, {}, {})", unit, target, aggregate, e); - throw new RpcException(Status.FileStoreException, e.getMessage()); + throw new RpcException(Status.FileSystemException, e.getMessage()); } } @@ -76,9 +76,9 @@ public void delete(DataUnit unit, RawDataTarget target) throws RpcException { DataTarget dataTarget = ServerObjectMappingUtils.resolveRawDataTarget(target); try { service.delete(unit, dataTarget); - } catch (FileStoreException e) { + } catch (FileSystemException e) { LOGGER.error("failed to delete({}, {})", unit, target, e); - throw new RpcException(Status.FileStoreException, e.getMessage()); + throw new RpcException(Status.FileSystemException, e.getMessage()); } } @@ -87,9 +87,9 @@ public void insert(DataUnit unit, RawInserted data) throws RpcException { DataView dataView = ServerObjectMappingUtils.resolveRawInserted(data); try { service.insert(unit, dataView); - } catch (FileStoreException e) { + } catch (FileSystemException e) { LOGGER.error("failed to insert({}, {})", unit, data, e); - throw new RpcException(Status.FileStoreException, e.getMessage()); + throw new RpcException(Status.FileSystemException, e.getMessage()); } } } diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/storage/StorageConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageConfig.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/storage/StorageConfig.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageConfig.java index e5db774f54..fe9fba8a03 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/storage/StorageConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageConfig.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructure; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructureManager; +import cn.edu.tsinghua.iginx.filesystem.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructure; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructureManager; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import com.typesafe.config.Optional; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/storage/StorageService.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageService.java similarity index 87% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/storage/StorageService.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageService.java index fea85d50fe..02c413316f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/service/storage/StorageService.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageService.java @@ -15,20 +15,20 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.common.DataUnits; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.service.Service; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.FileManager; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructure; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructureManager; -import cn.edu.tsinghua.iginx.filestore.struct.units.UnitsMerger; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.common.DataUnits; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.service.Service; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.FileManager; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructure; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructureManager; +import cn.edu.tsinghua.iginx.filesystem.struct.units.UnitsMerger; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.thrift.AggregateType; import java.io.Closeable; import java.io.IOException; @@ -61,7 +61,7 @@ public class StorageService implements Service { private volatile boolean closed = false; public StorageService(@Nullable StorageConfig dataConfig, @Nullable StorageConfig dummyConfig) - throws FileStoreException { + throws FileSystemException { this.dataConfig = dataConfig; this.dummyConfig = dummyConfig; @@ -81,27 +81,27 @@ public StorageService(@Nullable StorageConfig dataConfig, @Nullable StorageConfi initManager(); } catch (IOException e) { close(); - throw new FileStoreException("failed to initialize storage service", e); + throw new FileSystemException("failed to initialize storage service", e); } } @Nullable private static FileStructure getFileStructure(@Nullable StorageConfig config) - throws FileStoreException { + throws FileSystemException { if (config == null) { return null; } FileStructure structure = FileStructureManager.getInstance().getByName(config.getStruct()); if (structure == null) { String message = String.format("unknown file structure %s", config.getStruct()); - throw new FileStoreException(message); + throw new FileSystemException(message); } return structure; } @Nullable private static Closeable getShared(@Nullable StorageConfig config, FileStructure structure) - throws FileStoreException { + throws FileSystemException { if (config == null) { return null; } @@ -109,7 +109,7 @@ private static Closeable getShared(@Nullable StorageConfig config, FileStructure return structure.newShared(config.getConfig()); } catch (IOException e) { String message = String.format("failed to create shared for %s", config.getStruct()); - throw new FileStoreException(message, e); + throw new FileSystemException(message, e); } } @@ -214,7 +214,7 @@ private static Path getPathOf(Path root, String unitName) { } @Override - public Map getUnits(@Nullable String prefix) throws FileStoreException { + public Map getUnits(@Nullable String prefix) throws FileSystemException { Map boundariesForEachUnit = new HashMap<>(); for (DataUnit unit : managers.keySet()) { if (unit.isDummy() && unit.getName() != null) { @@ -233,7 +233,7 @@ public Map getUnits(@Nullable String prefix) throws File // TODO: use lock and cache in better way private DataBoundary getBoundary(DataUnit unit, @Nullable String prefix) - throws FileStoreException { + throws FileSystemException { if (unit.isDummy()) { try { if (dummyBoundary == null || !Objects.equals(prefix, lastPrefix)) @@ -246,7 +246,7 @@ private DataBoundary getBoundary(DataUnit unit, @Nullable String prefix) } catch (IOException e) { String message = String.format("failed to get boundary for unit %s with prefix %s", unit, prefix); - throw new FileStoreException(message, e); + throw new FileSystemException(message, e); } } else { return DATA_BOUNDARY; @@ -255,7 +255,7 @@ private DataBoundary getBoundary(DataUnit unit, @Nullable String prefix) @Override public RowStream query(DataUnit unit, DataTarget target, @Nullable AggregateType aggregate) - throws FileStoreException { + throws FileSystemException { try { FileManager manager = getOrCreateManager(unit); return manager.query(target, aggregate); @@ -269,13 +269,13 @@ public RowStream query(DataUnit unit, DataTarget target, @Nullable AggregateType } else { msg = "Failed to query data"; } - throw new FileStoreException(msg, e); + throw new FileSystemException(msg, e); } } // TODO: close and remove manager after clear all data @Override - public void delete(DataUnit unit, DataTarget target) throws FileStoreException { + public void delete(DataUnit unit, DataTarget target) throws FileSystemException { if (unit.isDummy()) { throw new IllegalStateException("cannot delete data from dummy unit"); } @@ -289,12 +289,12 @@ public void delete(DataUnit unit, DataTarget target) throws FileStoreException { } else { msg = "failed to delete data"; } - throw new FileStoreException(msg, e); + throw new FileSystemException(msg, e); } } @Override - public void insert(DataUnit unit, DataView dataView) throws FileStoreException { + public void insert(DataUnit unit, DataView dataView) throws FileSystemException { if (unit.isDummy()) { throw new IllegalStateException("cannot insert data into dummy unit"); } @@ -308,18 +308,18 @@ public void insert(DataUnit unit, DataView dataView) throws FileStoreException { } else { msg = "failed to insert data"; } - throw new FileStoreException(msg, e); + throw new FileSystemException(msg, e); } } // TODO: use rwlock to make sure close is exclusive with other operations @Override - public synchronized void close() throws FileStoreException { + public synchronized void close() throws FileSystemException { if (closed) { return; } closed = true; - FileStoreException exception = new FileStoreException("Failed to close storage service"); + FileSystemException exception = new FileSystemException("Failed to close storage service"); for (FileManager manager : managers.values()) { try { manager.close(); diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/DataTarget.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/DataTarget.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/DataTarget.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/DataTarget.java index 5f4c5dc6f8..3aad6e65d0 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/DataTarget.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/DataTarget.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct; +package cn.edu.tsinghua.iginx.filesystem.struct; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileManager.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileManager.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileManager.java index 879b0b13e6..dd0a1f5c56 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileManager.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct; +package cn.edu.tsinghua.iginx.filesystem.struct; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; import cn.edu.tsinghua.iginx.thrift.AggregateType; import java.io.Closeable; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileStructure.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructure.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileStructure.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructure.java index e312c2ae53..2508c3b481 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileStructure.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructure.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct; +package cn.edu.tsinghua.iginx.filesystem.struct; import com.typesafe.config.Config; import java.io.Closeable; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileStructureManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructureManager.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileStructureManager.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructureManager.java index bac5c41345..05812991be 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/FileStructureManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructureManager.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct; +package cn.edu.tsinghua.iginx.filesystem.struct; import java.util.Collection; import java.util.Collections; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/exception/FileStructureException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/FileStructureException.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/exception/FileStructureException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/FileStructureException.java index 81d9694ee3..46ef3159f5 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/exception/FileStructureException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/FileStructureException.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.exception; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/exception/NoSuchUnitException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/NoSuchUnitException.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/exception/NoSuchUnitException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/NoSuchUnitException.java index 2ab7a66edb..9d9e1ecd22 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/exception/NoSuchUnitException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/NoSuchUnitException.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.exception; public class NoSuchUnitException extends FileStructureException { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/LegacyFilesystem.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystem.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/LegacyFilesystem.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystem.java index b17d8c3183..d08cb3acfe 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/LegacyFilesystem.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystem.java @@ -15,16 +15,16 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem; import cn.edu.tsinghua.iginx.auth.FilePermissionManager; import cn.edu.tsinghua.iginx.auth.entity.FileAccessType; import cn.edu.tsinghua.iginx.auth.utils.FilePermissionRuleNameFilters; -import cn.edu.tsinghua.iginx.filestore.struct.FileManager; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructure; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exec.LocalExecutor; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.FileManager; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructure; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exec.LocalExecutor; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; import com.google.auto.service.AutoService; import com.typesafe.config.Config; import java.io.Closeable; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/LegacyFilesystemWrapper.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystemWrapper.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/LegacyFilesystemWrapper.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystemWrapper.java index 3940fb6e46..1868596569 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/LegacyFilesystemWrapper.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystemWrapper.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; @@ -27,13 +27,13 @@ import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.filestore.common.Fields; -import cn.edu.tsinghua.iginx.filestore.common.Filters; -import cn.edu.tsinghua.iginx.filestore.common.Patterns; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.FileManager; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exec.LocalExecutor; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.common.Fields; +import cn.edu.tsinghua.iginx.filesystem.common.Filters; +import cn.edu.tsinghua.iginx.filesystem.common.Patterns; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.FileManager; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exec.LocalExecutor; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; import cn.edu.tsinghua.iginx.thrift.AggregateType; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java index e70f357e35..325378052f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalTaskExecuteFailureException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exception/FilesystemException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FilesystemException.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exception/FilesystemException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FilesystemException.java index 1a08eedd92..73fae00f27 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exception/FilesystemException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FilesystemException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/Executor.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/Executor.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/Executor.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/Executor.java index 01280204f7..697672246e 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/Executor.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/Executor.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exec; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exec; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.Column; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/FileSystemManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/FileSystemManager.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/FileSystemManager.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/FileSystemManager.java index 16eddb42d9..f8c4c83b68 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/FileSystemManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/FileSystemManager.java @@ -16,22 +16,22 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exec; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exec; import static cn.edu.tsinghua.iginx.engine.logical.utils.PathUtils.MAX_CHAR; -import static cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant.*; +import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.*; import cn.edu.tsinghua.iginx.auth.entity.FileAccessType; import cn.edu.tsinghua.iginx.engine.physical.storage.utils.TagKVUtils; import cn.edu.tsinghua.iginx.engine.shared.KeyRange; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file.DefaultFileOperator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file.IFileOperator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file.entity.FileMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity.FileSystemResultTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity.Record; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools.FilePathUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools.MemoryPool; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.DefaultFileOperator; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.IFileOperator; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.entity.FileMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity.FileSystemResultTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity.Record; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools.FilePathUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools.MemoryPool; import cn.edu.tsinghua.iginx.thrift.DataType; import cn.edu.tsinghua.iginx.utils.Pair; import cn.edu.tsinghua.iginx.utils.StringUtils; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/LocalExecutor.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/LocalExecutor.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/LocalExecutor.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/LocalExecutor.java index 6d8a7a6b36..fce816251b 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/exec/LocalExecutor.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/LocalExecutor.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exec; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exec; import static cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils.getKeyRangesFromFilter; -import static cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant.SEPARATOR; -import static cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant.WILDCARD; +import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.SEPARATOR; +import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.WILDCARD; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream.EmptyRowStream; @@ -35,15 +35,15 @@ import cn.edu.tsinghua.iginx.engine.shared.data.write.RowDataView; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exception.FileSystemTaskExecuteFailureException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exception.FilesystemException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file.entity.FileMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity.FileSystemHistoryQueryRowStream; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity.FileSystemQueryRowStream; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity.FileSystemResultTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity.Record; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools.FilePathUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exception.FileSystemTaskExecuteFailureException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exception.FilesystemException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.entity.FileMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity.FileSystemHistoryQueryRowStream; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity.FileSystemQueryRowStream; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity.FileSystemResultTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity.Record; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools.FilePathUtils; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/DefaultFileOperator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/DefaultFileOperator.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/DefaultFileOperator.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/DefaultFileOperator.java index 40e96dfecd..85e3019cbb 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/DefaultFileOperator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/DefaultFileOperator.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file; -import static cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant.*; -import static cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant.MAGIC_NUMBER; +import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.*; +import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.MAGIC_NUMBER; import static cn.edu.tsinghua.iginx.utils.DataTypeUtils.transformObjectToStringByDataType; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file.entity.FileMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity.Record; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools.LimitedSizeMap; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.entity.FileMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity.Record; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools.LimitedSizeMap; import cn.edu.tsinghua.iginx.thrift.DataType; import cn.edu.tsinghua.iginx.utils.DataTypeUtils; import cn.edu.tsinghua.iginx.utils.JsonUtils; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/IFileOperator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/IFileOperator.java similarity index 86% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/IFileOperator.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/IFileOperator.java index d94a9598eb..8ac9f29752 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/IFileOperator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/IFileOperator.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file.entity.FileMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity.Record; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.entity.FileMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity.Record; import cn.edu.tsinghua.iginx.thrift.DataType; import java.io.File; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/entity/FileMeta.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/entity/FileMeta.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/entity/FileMeta.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/entity/FileMeta.java index cc285d551d..151f812c7c 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/file/entity/FileMeta.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/entity/FileMeta.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.file.entity; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.entity; -import static cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant.MAGIC_NUMBER; +import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.MAGIC_NUMBER; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.HashMap; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java index b02bb09c95..0e436744cf 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils; @@ -25,9 +25,9 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exception.FilesystemException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools.FilePathUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools.MemoryPool; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exception.FilesystemException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools.FilePathUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools.MemoryPool; import java.io.File; import java.util.ArrayList; import java.util.List; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java index be3a6b843c..aaaf3c3846 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils; @@ -25,8 +25,8 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.exception.FilesystemException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools.FilePathUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exception.FilesystemException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools.FilePathUtils; import java.io.File; import java.util.ArrayList; import java.util.List; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemResultTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemResultTable.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemResultTable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemResultTable.java index f602a886d9..1c814412d5 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/FileSystemResultTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemResultTable.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity; import cn.edu.tsinghua.iginx.thrift.DataType; import java.io.File; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/Record.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/Record.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/Record.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/Record.java index 2d8a0904d9..b994f05679 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/query/entity/Record.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/Record.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.query.entity; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity; import cn.edu.tsinghua.iginx.engine.shared.data.Value; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/shared/Constant.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/Constant.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/shared/Constant.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/Constant.java index ac09460bca..9117c27832 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/shared/Constant.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/Constant.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/shared/FileType.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/FileType.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/shared/FileType.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/FileType.java index d2283a7bfa..f99507efeb 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/shared/FileType.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/FileType.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared; public enum FileType { IGINX_FILE, diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/FilePathUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/FilePathUtils.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/FilePathUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/FilePathUtils.java index 5ed66fb5e8..d199fb4a48 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/FilePathUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/FilePathUtils.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools; -import static cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.shared.Constant.*; +import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.*; import cn.edu.tsinghua.iginx.auth.FilePermissionManager; import cn.edu.tsinghua.iginx.auth.entity.FileAccessType; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/LimitedSizeMap.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/LimitedSizeMap.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/LimitedSizeMap.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/LimitedSizeMap.java index 8fda95b2bf..4a7c71b669 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/LimitedSizeMap.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/LimitedSizeMap.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools; import java.util.LinkedHashMap; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/MemoryPool.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/MemoryPool.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/MemoryPool.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/MemoryPool.java index e423edb51b..a13f1e1d3f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/filesystem/tools/MemoryPool.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/MemoryPool.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.filesystem.tools; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquet.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquet.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquet.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquet.java index 31cdd559eb..9c03b6932c 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquet.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquet.java @@ -15,13 +15,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet; -import cn.edu.tsinghua.iginx.filestore.struct.FileManager; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructure; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data.DataManager; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.StorageProperties; +import cn.edu.tsinghua.iginx.filesystem.struct.FileManager; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructure; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data.DataManager; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.StorageProperties; import com.google.auto.service.AutoService; import com.typesafe.config.Config; import java.io.Closeable; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquetWrapper.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquetWrapper.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquetWrapper.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquetWrapper.java index 09c5a03ccb..8c0880c123 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/LegacyParquetWrapper.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquetWrapper.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; @@ -26,16 +26,16 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.filestore.common.Fields; -import cn.edu.tsinghua.iginx.filestore.common.Filters; -import cn.edu.tsinghua.iginx.filestore.common.Patterns; -import cn.edu.tsinghua.iginx.filestore.common.Ranges; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.FileManager; -import cn.edu.tsinghua.iginx.filestore.struct.exception.NoSuchUnitException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data.DataManager; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.common.Fields; +import cn.edu.tsinghua.iginx.filesystem.common.Filters; +import cn.edu.tsinghua.iginx.filesystem.common.Patterns; +import cn.edu.tsinghua.iginx.filesystem.common.Ranges; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.FileManager; +import cn.edu.tsinghua.iginx.filesystem.struct.exception.NoSuchUnitException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data.DataManager; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; import cn.edu.tsinghua.iginx.thrift.AggregateType; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/Database.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/Database.java similarity index 84% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/Database.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/Database.java index bb2cece271..20ab6c8897 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/Database.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/Database.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.RangeSet; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/OneTierDB.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/OneTierDB.java similarity index 80% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/OneTierDB.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/OneTierDB.java index c00d394778..532f898628 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/OneTierDB.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/OneTierDB.java @@ -16,28 +16,28 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.Database; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.ReadWriter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.DataBuffer; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTableQueue; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.compact.Flusher; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.TableStorage; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.WriteBatches; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.BatchPlaneScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils.TagKVUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.NoexceptAutoCloseable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.NoexceptAutoCloseables; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowFields; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageRuntimeException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.TypeConflictedException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.Database; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.ReadWriter; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.DataBuffer; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.MemTableQueue; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.compact.Flusher; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table.TableStorage; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.WriteBatches; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.BatchPlaneScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils.TagKVUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.NoexceptAutoCloseable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.NoexceptAutoCloseables; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowFields; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageRuntimeException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.TypeConflictedException; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/api/ReadWriter.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/ReadWriter.java similarity index 85% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/api/ReadWriter.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/ReadWriter.java index 97a8aeb9f1..2a0a76bac7 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/api/ReadWriter.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/ReadWriter.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; import com.google.common.collect.RangeSet; import java.io.IOException; import java.util.Set; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/api/TableMeta.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/TableMeta.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/api/TableMeta.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/TableMeta.java index dbd8c5cf8c..8bf4b804b1 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/api/TableMeta.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/TableMeta.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.Range; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java index 0188d2fce9..82af6250a8 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java @@ -15,17 +15,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer; - -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict.ConflictResolver; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.MemoryTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Awaitable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.NoexceptAutoCloseable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowFields; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; + +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict.ConflictResolver; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table.MemoryTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Awaitable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.NoexceptAutoCloseable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowFields; import com.google.common.collect.RangeSet; import java.io.IOException; import java.util.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java similarity index 88% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java index e78d868561..6e21321247 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.MemoryTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.NoexceptAutoCloseable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table.MemoryTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.NoexceptAutoCloseable; import com.google.common.collect.RangeSet; import java.util.ArrayList; import java.util.Collection; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java index 306a3e032b..88119d0ffc 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.ColumnUnionRowScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.IteratorScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.ColumnUnionRowScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.IteratorScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import com.google.common.collect.BoundType; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemColumn.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemColumn.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemColumn.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemColumn.java index fb73f4ea6d..94157a454f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemColumn.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemColumn.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.iterator.DedupIterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.iterator.StableMergeIterator; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.iterator.DedupIterator; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.iterator.StableMergeIterator; import com.google.common.collect.*; import java.util.ArrayList; import java.util.Iterator; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTable.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTable.java index 8cd07bc9bd..b9f1cd5479 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTable.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.MemoryTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table.MemoryTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; import com.google.common.collect.RangeSet; import java.util.*; import java.util.concurrent.ConcurrentHashMap; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java index 32ad969c07..ffe33d7506 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java @@ -15,17 +15,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer; - -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.MemoryTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.AreaFilterScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Awaitable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.NoexceptAutoCloseable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowFields; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; + +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table.MemoryTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.AreaFilterScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Awaitable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.NoexceptAutoCloseable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowFields; import com.google.common.collect.RangeSet; import java.io.IOException; import java.util.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java index ff0f909d1f..81574fb6f9 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.NoexceptAutoCloseable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowVectors; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.NoexceptAutoCloseable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowVectors; import java.util.AbstractMap; import java.util.Iterator; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java index 54f562ab3f..5e038186da 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowVectors; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowVectors; import com.google.common.collect.RangeSet; import java.util.Map; import javax.annotation.Nullable; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java index 0d8d462149..94b0c9d355 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; public enum IndexedChunkType { SKIP_LIST(SkipListChunk::new), diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java index 0c2264bdf3..6bfc73a0aa 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowVectors; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowVectors; import com.google.common.collect.RangeSet; import com.google.common.collect.TreeRangeSet; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java index 37549e4236..2efcd1b334 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowVectors; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowVectors; import com.google.common.collect.BoundType; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java similarity index 76% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java index a98935ab89..6db4b17e23 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; public interface ConflictResolver { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java index feacb3a21d..c9aca59573 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; import java.util.Objects; import java.util.function.Supplier; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java similarity index 79% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java index 5718ffd50a..74c77b789c 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; public class NoneResolver implements ConflictResolver { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java similarity index 83% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java index ef6b212b4a..6983e27b6d 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java index 241adcf994..cef9e006fa 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java similarity index 90% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java index 13c4412f60..939ee4a6ab 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.MemTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/compact/Flusher.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/compact/Flusher.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/compact/Flusher.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/compact/Flusher.java index d0eafd7a8a..3d434b1621 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/compact/Flusher.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/compact/Flusher.java @@ -15,13 +15,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.compact; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.compact; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemTableQueue; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.MemoryTable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.TableStorage; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.NoexceptAutoCloseable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.MemTableQueue; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table.MemoryTable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table.TableStorage; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.NoexceptAutoCloseable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.util.ArrayList; import java.util.List; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/DeletedTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTable.java similarity index 78% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/DeletedTable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTable.java index 0b0f82f84b..bc8d485ff7 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/DeletedTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTable.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.TableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.AreaFilterScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.AreaFilterScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; import com.google.common.collect.RangeSet; import java.io.IOException; import java.util.Set; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java index b4947e0df8..14966a91ac 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.TableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/FileTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/FileTable.java similarity index 86% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/FileTable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/FileTable.java index e532c3ddf1..5791ed83ff 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/FileTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/FileTable.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.ReadWriter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.TableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.ReadWriter; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; import com.google.common.collect.RangeSet; import java.io.IOException; import java.util.Set; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/MemoryTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/MemoryTable.java similarity index 88% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/MemoryTable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/MemoryTable.java index fc8878d240..5bdf127bf9 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/MemoryTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/MemoryTable.java @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.TableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.MemColumn; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.*; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils.TagKVUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.NoexceptAutoCloseable; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.SingleCache; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowFields; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.MemColumn; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.*; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils.TagKVUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.NoexceptAutoCloseable; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.SingleCache; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowFields; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/Table.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/Table.java similarity index 79% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/Table.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/Table.java index fc1ded1f10..1857a06083 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/Table.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/Table.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.TableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.LazyRowScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.LazyRowScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import com.google.common.collect.RangeSet; import java.io.IOException; import java.util.Set; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/TableIndex.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableIndex.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/TableIndex.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableIndex.java index 324a149cc5..06a2851984 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/TableIndex.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableIndex.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.TableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.NotIntegrityException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageRuntimeException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.TypeConflictedException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.NotIntegrityException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageRuntimeException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.TypeConflictedException; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.ImmutableRangeSet; import com.google.common.collect.Range; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/TableStorage.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableStorage.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/TableStorage.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableStorage.java index 4832462796..46397440c5 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/lsm/table/TableStorage.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableStorage.java @@ -16,21 +16,21 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.ReadWriter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.TableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.DataBuffer; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.ConcatScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.EmtpyHeadRowScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.RowUnionScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowFields; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.TypeConflictedException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.ReadWriter; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.DataBuffer; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.ConcatScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.EmtpyHeadRowScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.RowUnionScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowFields; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.TypeConflictedException; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.*; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/AreaSet.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/AreaSet.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/AreaSet.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/AreaSet.java index 9837a68bdf..f577e2bd22 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/AreaSet.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/AreaSet.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/SequenceGenerator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/SequenceGenerator.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/SequenceGenerator.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/SequenceGenerator.java index e74294e2e9..b254f14662 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/SequenceGenerator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/SequenceGenerator.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util; import java.util.concurrent.atomic.AtomicLong; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/WriteBatches.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/WriteBatches.java similarity index 88% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/WriteBatches.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/WriteBatches.java index 52745ca155..a8870f7e15 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/WriteBatches.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/WriteBatches.java @@ -15,16 +15,16 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils.TagKVUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowFields; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowTypes; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowVectors; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.Chunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils.TagKVUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowFields; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowTypes; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowVectors; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.HashMap; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java index d0f56d279d..e5669d7613 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import com.google.common.collect.RangeSet; public class AreaFilterScanner, F, V> implements Scanner> { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java index 4f8ad828a1..850f7b6cdb 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import java.util.NoSuchElementException; public class BatchPlaneScanner implements Scanner>> { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java index 15499561f3..336d53bde5 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import java.util.Comparator; import java.util.Map; import java.util.NoSuchElementException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ConcatScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ConcatScanner.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ConcatScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ConcatScanner.java index c6207fb4f8..69d631e345 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ConcatScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ConcatScanner.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import java.util.Iterator; import java.util.NoSuchElementException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/DelegateScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/DelegateScanner.java similarity index 87% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/DelegateScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/DelegateScanner.java index 0c395e1524..38691a9629 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/DelegateScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/DelegateScanner.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; public class DelegateScanner implements Scanner { private final Scanner scanner; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/EmptyScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmptyScanner.java similarity index 88% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/EmptyScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmptyScanner.java index cf3b6d6bb8..a04dac4380 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/EmptyScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmptyScanner.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import java.util.NoSuchElementException; public class EmptyScanner implements Scanner { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java similarity index 88% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java index 36ac346054..f31dc39764 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; public class EmtpyHeadRowScanner, F, V> implements Scanner> { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/IteratorScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/IteratorScanner.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/IteratorScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/IteratorScanner.java index 369329ccf8..37ef782da4 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/IteratorScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/IteratorScanner.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import java.util.Iterator; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java similarity index 89% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java index 6553f10f03..a244460214 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; public class LazyRowScanner, F, V> implements Scanner> { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java similarity index 86% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java index b7f88b2111..f2a6dcf949 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; public class ListenCloseScanner extends DelegateScanner { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java similarity index 90% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java index cb26fcc8f2..eedd4f6223 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java @@ -15,6 +15,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; public class RowConcatScanner {} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java similarity index 83% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java index 119914f6c6..c6fb3092eb 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; public interface RowScannerFactory, F, V> { Scanner> create() throws StorageException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java index b45171749e..18537ee5e6 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import java.util.*; public class RowUnionScanner, F, V> implements Scanner> { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/Scanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/Scanner.java similarity index 84% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/Scanner.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/Scanner.java index ca24f81df4..73c53ccb1f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/Scanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/Scanner.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; public interface Scanner extends AutoCloseable { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/SizeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/SizeUtils.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/SizeUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/SizeUtils.java index b548a3d5f3..6a10898eb3 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/util/iterator/SizeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/SizeUtils.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import java.util.HashMap; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/Manager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/Manager.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/Manager.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/Manager.java index c4ff32c44b..e67fb1b11e 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/Manager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/Manager.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.Column; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/AggregatedRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/AggregatedRowStream.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/AggregatedRowStream.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/AggregatedRowStream.java index b224f023bb..3dff897ece 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/AggregatedRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/AggregatedRowStream.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/DataManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataManager.java similarity index 86% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/DataManager.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataManager.java index 75e3f757d7..8233a11066 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/DataManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataManager.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.Column; @@ -27,17 +27,17 @@ import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.Database; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.OneTierDB; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.ReadWriter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.Manager; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils.TagKVUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow.ArrowFields; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.Database; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.OneTierDB; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.ReadWriter; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.Manager; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils.TagKVUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow.ArrowFields; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.RangeSet; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/DataViewWrapper.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataViewWrapper.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/DataViewWrapper.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataViewWrapper.java index 9613e5768c..571127745f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/DataViewWrapper.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataViewWrapper.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; import cn.edu.tsinghua.iginx.engine.shared.data.write.BitmapView; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils.TagKVUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils.TagKVUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/FilterRangeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtils.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/FilterRangeUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtils.java index 94424fd0a6..78ad3c7070 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/FilterRangeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtils.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import com.google.common.collect.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/LongFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/LongFormat.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/LongFormat.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/LongFormat.java index cfc80243bf..4ad5dcab6f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/LongFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/LongFormat.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; public class LongFormat implements ObjectFormat { @Override diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ObjectFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ObjectFormat.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ObjectFormat.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ObjectFormat.java index c3f4c1ca07..b5a8c6775f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ObjectFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ObjectFormat.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; public interface ObjectFormat { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ParquetReadWriter.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ParquetReadWriter.java similarity index 90% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ParquetReadWriter.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ParquetReadWriter.java index 21566e62e3..bf7f0325d5 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ParquetReadWriter.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ParquetReadWriter.java @@ -16,26 +16,26 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IParquetReader; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IParquetWriter; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IRecord; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.ReadWriter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.api.TableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.table.DeletedTableMeta; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.AreaFilterScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.IteratorScanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy.Storer; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.CachePool; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageException; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageRuntimeException; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IParquetReader; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IParquetWriter; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IRecord; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.ReadWriter; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table.DeletedTableMeta; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.AreaFilterScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.IteratorScanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy.Storer; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.CachePool; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageRuntimeException; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ProjectUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ProjectUtils.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ProjectUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ProjectUtils.java index 9926fc121a..2c611116bb 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ProjectUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ProjectUtils.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.storage.utils.TagKVUtils; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.UnsupportedFilterException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.UnsupportedFilterException; import cn.edu.tsinghua.iginx.thrift.DataType; import cn.edu.tsinghua.iginx.utils.StringUtils; import java.util.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ScannerRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ScannerRowStream.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ScannerRowStream.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ScannerRowStream.java index 68fdbfe8a1..ce43a2c23b 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/ScannerRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ScannerRowStream.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.exception.RowFetchException; @@ -24,7 +24,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.iterator.Scanner; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator.Scanner; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.ArrayList; import java.util.HashMap; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/SerializeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SerializeUtils.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/SerializeUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SerializeUtils.java index 36f3adde74..512c563c99 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/SerializeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SerializeUtils.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; import com.google.common.collect.*; import java.io.StringReader; import java.util.Collections; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/SizeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SizeUtils.java similarity index 90% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/SizeUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SizeUtils.java index c4c5a83356..ed7b96b4a7 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/SizeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SizeUtils.java @@ -16,6 +16,6 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; public class SizeUtils {} diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/StringFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/StringFormat.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/StringFormat.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/StringFormat.java index 099b50cf40..1a62d1c058 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/StringFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/StringFormat.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; public class StringFormat implements ObjectFormat { @Override diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/TombstoneStorage.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/TombstoneStorage.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/TombstoneStorage.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/TombstoneStorage.java index 422d215f30..065dd4fbd2 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/TombstoneStorage.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/TombstoneStorage.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.CachePool; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Shared; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception.StorageRuntimeException; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.CachePool; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Shared; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageRuntimeException; import java.io.*; import java.nio.file.*; import java.util.Set; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Column.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Column.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Column.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Column.java index c8ba8faa07..9baf3c4d28 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Column.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Column.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.HashMap; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Field.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Field.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Field.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Field.java index 53717c3b05..9488ed634d 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Field.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Field.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.Objects; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Loader.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Loader.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Loader.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Loader.java index 80a48f80b9..2c3365ec34 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Loader.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Loader.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IParquetReader; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IRecord; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IParquetReader; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IRecord; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.collect.Range; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java index 99a8fcec3c..1f52254369 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; @@ -47,7 +47,7 @@ public NewQueryRowStream(List columns) { List fields = new ArrayList<>(); for (Column column : columns) { ColumnKey key = - cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils.TagKVUtils + cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils.TagKVUtils .splitFullName(column.getPathName()); Field field; field = new Field(key.getPath(), column.getType(), key.getTags()); diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Storer.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Storer.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Storer.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Storer.java index a077ef8e1f..6605f70843 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Storer.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Storer.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IParquetWriter; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IRecord; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IParquetWriter; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IRecord; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; import cn.edu.tsinghua.iginx.thrift.DataType; import java.io.IOException; import java.nio.file.Path; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Table.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Table.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Table.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Table.java index 5b0053832b..edb6ef67d6 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/dummy/Table.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Table.java @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; import cn.edu.tsinghua.iginx.thrift.DataType; import java.io.IOException; import java.util.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/utils/RangeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/RangeUtils.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/utils/RangeUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/RangeUtils.java index 76406260d6..27a7e53e9c 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/utils/RangeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/RangeUtils.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; import com.google.common.collect.BoundType; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/utils/TagKVUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/TagKVUtils.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/utils/TagKVUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/TagKVUtils.java index f4de8a30c4..63597396a8 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/utils/TagKVUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/TagKVUtils.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; import cn.edu.tsinghua.iginx.engine.physical.storage.utils.ColumnKeyTranslator; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Awaitable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Awaitable.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Awaitable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Awaitable.java index 60629fffb7..95a8964048 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Awaitable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Awaitable.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; public interface Awaitable { void await() throws InterruptedException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/CachePool.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CachePool.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/CachePool.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CachePool.java index 21611fab0a..f11224736a 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/CachePool.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CachePool.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/CloseableHolders.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CloseableHolders.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/CloseableHolders.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CloseableHolders.java index f42006feb8..cc8066db10 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/CloseableHolders.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CloseableHolders.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import java.util.NoSuchElementException; import org.apache.arrow.util.Preconditions; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Constants.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Constants.java similarity index 96% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Constants.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Constants.java index db5d6cb6d4..1992746877 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Constants.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Constants.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; public final class Constants { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/NoexceptAutoCloseable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseable.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/NoexceptAutoCloseable.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseable.java index 35f8133422..2a2e9a31d4 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/NoexceptAutoCloseable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseable.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; public interface NoexceptAutoCloseable extends AutoCloseable { @Override diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/NoexceptAutoCloseables.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseables.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/NoexceptAutoCloseables.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseables.java index 732c3acd90..8b782e6e65 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/NoexceptAutoCloseables.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseables.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import org.apache.arrow.util.AutoCloseables; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/ParseUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/ParseUtils.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/ParseUtils.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/ParseUtils.java index 2b541ee3f7..0950f577aa 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/ParseUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/ParseUtils.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import java.time.Duration; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Shared.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Shared.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Shared.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Shared.java index 5c4af3b774..dee7b33bfa 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/Shared.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Shared.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import java.io.Closeable; import java.io.IOException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/SingleCache.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/SingleCache.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/SingleCache.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/SingleCache.java index cc5602aff9..ddcb181fad 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/SingleCache.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/SingleCache.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import java.util.function.Consumer; import java.util.function.Supplier; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/StorageProperties.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/StorageProperties.java similarity index 98% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/StorageProperties.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/StorageProperties.java index a6fe1b2664..a72eca8bac 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/StorageProperties.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/StorageProperties.java @@ -16,11 +16,11 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunkType; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.lsm.buffer.conflict.ConflictResolverType; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunkType; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict.ConflictResolverType; import java.time.Duration; import java.util.Map; import java.util.Optional; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java index 9c35c07c09..854a2e5467 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.Map; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowFields.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFields.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowFields.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFields.java index 869bdd3618..140f7445ce 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowFields.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFields.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.utils.TagKVUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils.TagKVUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.Collections; import java.util.List; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowTypes.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowTypes.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowTypes.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowTypes.java index 8e8e4010fd..2df18b1013 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowTypes.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowTypes.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.Objects; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowVectors.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowVectors.java similarity index 99% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowVectors.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowVectors.java index ac3724e3f5..4d5eb18431 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/arrow/ArrowVectors.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowVectors.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.arrow; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/InvalidFieldNameException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/InvalidFieldNameException.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/InvalidFieldNameException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/InvalidFieldNameException.java index 0d70624eb7..c721e6800d 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/InvalidFieldNameException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/InvalidFieldNameException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class InvalidFieldNameException extends SchemaException { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/IsClosedException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/IsClosedException.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/IsClosedException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/IsClosedException.java index 34ef692f83..895c1af3d5 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/IsClosedException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/IsClosedException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class IsClosedException extends RuntimeException { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/NotIntegrityException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/NotIntegrityException.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/NotIntegrityException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/NotIntegrityException.java index e9f59c82dc..f260cc6a79 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/NotIntegrityException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/NotIntegrityException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class NotIntegrityException extends StorageRuntimeException { public NotIntegrityException(String message) { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/SchemaException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/SchemaException.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/SchemaException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/SchemaException.java index 6122f9e7e8..7d923e2471 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/SchemaException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/SchemaException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class SchemaException extends StorageException { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageClosedException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageClosedException.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageClosedException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageClosedException.java index 8500b9e8ab..1aefdcb62b 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageClosedException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageClosedException.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class StorageClosedException extends StorageException { public StorageClosedException(String message) { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageException.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageException.java index d5b56cdd28..1ea29b730b 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageRuntimeException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageRuntimeException.java similarity index 93% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageRuntimeException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageRuntimeException.java index 8497001864..f11edcfd31 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/StorageRuntimeException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageRuntimeException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalRuntimeException; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/TimeoutException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TimeoutException.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/TimeoutException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TimeoutException.java index cfa391f144..37c94c4f9f 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/TimeoutException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TimeoutException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class TimeoutException extends StorageException { public TimeoutException(String message) { diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/TypeConflictedException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TypeConflictedException.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/TypeConflictedException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TypeConflictedException.java index 3c3f8e4760..c5ce786081 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/TypeConflictedException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TypeConflictedException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class TypeConflictedException extends SchemaException { private final String field; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/UnsupportedFilterException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/UnsupportedFilterException.java similarity index 94% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/UnsupportedFilterException.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/UnsupportedFilterException.java index 8b04b16e6e..6b378a8703 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/exception/UnsupportedFilterException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/UnsupportedFilterException.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.exception; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/iterator/DedupIterator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/DedupIterator.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/iterator/DedupIterator.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/DedupIterator.java index 4b6e649999..3422534e8b 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/iterator/DedupIterator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/DedupIterator.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.iterator; import com.google.common.collect.Iterators; import com.google.common.collect.PeekingIterator; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/iterator/StableMergeIterator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/StableMergeIterator.java similarity index 97% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/iterator/StableMergeIterator.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/StableMergeIterator.java index 0fb33dbda2..0ebf0cdc6a 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/util/iterator/StableMergeIterator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/StableMergeIterator.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.iterator; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.iterator; import com.google.common.collect.Iterators; import com.google.common.collect.PeekingIterator; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTree.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTree.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTree.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTree.java index 9e4a84b002..8dbc2bad30 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTree.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTree.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree; +package cn.edu.tsinghua.iginx.filesystem.struct.tree; -import cn.edu.tsinghua.iginx.filestore.struct.FileManager; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructure; +import cn.edu.tsinghua.iginx.filesystem.struct.FileManager; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructure; import com.google.auto.service.AutoService; import com.typesafe.config.Config; import java.io.Closeable; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfig.java similarity index 95% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeConfig.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfig.java index dfd415457c..f28bc92ad6 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfig.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree; +package cn.edu.tsinghua.iginx.filesystem.struct.tree; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filesystem.common.AbstractConfig; import com.typesafe.config.*; import com.typesafe.config.Optional; import java.util.*; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeManager.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeManager.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeManager.java index 4b896518ab..5be9dc9845 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeManager.java @@ -15,18 +15,18 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree; +package cn.edu.tsinghua.iginx.filesystem.struct.tree; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.common.IginxPaths; -import cn.edu.tsinghua.iginx.filestore.common.RowStreams; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.FileManager; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.ftj.UnionFormatTree; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.common.IginxPaths; +import cn.edu.tsinghua.iginx.filesystem.common.RowStreams; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.FileManager; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj.UnionFormatTree; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; import cn.edu.tsinghua.iginx.thrift.AggregateType; import cn.edu.tsinghua.iginx.utils.StringUtils; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/AbstractQuerier.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/AbstractQuerier.java similarity index 91% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/AbstractQuerier.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/AbstractQuerier.java index 4c5beb3979..89abcfd4b6 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/AbstractQuerier.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/AbstractQuerier.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; import java.nio.file.Path; import lombok.Getter; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/Querier.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Querier.java similarity index 87% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/Querier.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Querier.java index 52f130e8c7..56b2199f5e 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/Querier.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Querier.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; import java.io.Closeable; import java.io.IOException; import java.nio.file.Path; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/Queriers.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Queriers.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/Queriers.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Queriers.java index 3e5be1d46a..756328ea39 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/Queriers.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Queriers.java @@ -15,15 +15,15 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.common.Closeables; -import cn.edu.tsinghua.iginx.filestore.common.Filters; -import cn.edu.tsinghua.iginx.filestore.common.RowStreams; -import cn.edu.tsinghua.iginx.filestore.common.Strings; +import cn.edu.tsinghua.iginx.filesystem.common.Closeables; +import cn.edu.tsinghua.iginx.filesystem.common.Filters; +import cn.edu.tsinghua.iginx.filesystem.common.RowStreams; +import cn.edu.tsinghua.iginx.filesystem.common.Strings; import com.google.common.collect.Iterables; import java.io.IOException; import java.util.Collections; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerier.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerier.java similarity index 86% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerier.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerier.java index fd01fb6b80..64729c4dfc 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerier.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerier.java @@ -15,20 +15,20 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query.ftj; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.common.Filters; -import cn.edu.tsinghua.iginx.filestore.common.Patterns; -import cn.edu.tsinghua.iginx.filestore.common.RowStreams; -import cn.edu.tsinghua.iginx.filestore.common.Strings; -import cn.edu.tsinghua.iginx.filestore.format.FileFormat; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.AbstractQuerier; +import cn.edu.tsinghua.iginx.filesystem.common.Filters; +import cn.edu.tsinghua.iginx.filesystem.common.Patterns; +import cn.edu.tsinghua.iginx.filesystem.common.RowStreams; +import cn.edu.tsinghua.iginx.filesystem.common.Strings; +import cn.edu.tsinghua.iginx.filesystem.format.FileFormat; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.AbstractQuerier; import cn.edu.tsinghua.iginx.thrift.DataType; import java.io.IOException; import java.nio.file.Path; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerierBuilder.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilder.java similarity index 82% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerierBuilder.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilder.java index 9613752701..029288a880 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerierBuilder.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilder.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query.ftj; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; -import cn.edu.tsinghua.iginx.filestore.format.FileFormat; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier.Builder; +import cn.edu.tsinghua.iginx.filesystem.format.FileFormat; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier.Builder; import com.typesafe.config.Config; import java.io.IOException; import java.nio.file.Path; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerierBuilderFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilderFactory.java similarity index 80% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerierBuilderFactory.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilderFactory.java index a43c31ccf8..40002e19da 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/FormatQuerierBuilderFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilderFactory.java @@ -15,14 +15,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query.ftj; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; -import cn.edu.tsinghua.iginx.filestore.format.FileFormat; -import cn.edu.tsinghua.iginx.filestore.format.FileFormatManager; -import cn.edu.tsinghua.iginx.filestore.format.raw.RawFormat; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier.Builder; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier.Builder.Factory; +import cn.edu.tsinghua.iginx.filesystem.format.FileFormat; +import cn.edu.tsinghua.iginx.filesystem.format.FileFormatManager; +import cn.edu.tsinghua.iginx.filesystem.format.raw.RawFormat; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier.Builder; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier.Builder.Factory; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import java.nio.file.Path; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerier.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerier.java similarity index 82% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerier.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerier.java index 6af7e0d884..ffd8a3792e 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerier.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerier.java @@ -15,14 +15,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query.ftj; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; -import cn.edu.tsinghua.iginx.filestore.common.Closeables; -import cn.edu.tsinghua.iginx.filestore.common.Strings; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.AbstractQuerier; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier; +import cn.edu.tsinghua.iginx.filesystem.common.Closeables; +import cn.edu.tsinghua.iginx.filesystem.common.Strings; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.AbstractQuerier; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier; import java.io.IOException; import java.nio.file.Path; import java.util.ArrayList; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java similarity index 88% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java index 4820e96d4c..b37aa5d715 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java @@ -15,18 +15,18 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query.ftj; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.common.Closeables; -import cn.edu.tsinghua.iginx.filestore.common.Filters; -import cn.edu.tsinghua.iginx.filestore.common.IginxPaths; -import cn.edu.tsinghua.iginx.filestore.common.Patterns; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier.Builder; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Queriers; +import cn.edu.tsinghua.iginx.filesystem.common.Closeables; +import cn.edu.tsinghua.iginx.filesystem.common.Filters; +import cn.edu.tsinghua.iginx.filesystem.common.IginxPaths; +import cn.edu.tsinghua.iginx.filesystem.common.Patterns; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier.Builder; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Queriers; import java.io.IOException; import java.nio.file.DirectoryStream; import java.nio.file.Files; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java similarity index 84% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java index 98ec03c88d..e44c260184 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query.ftj; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier.Builder; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier.Builder.Factory; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier.Builder; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier.Builder.Factory; import java.nio.file.Path; import java.util.Objects; import javax.annotation.Nullable; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionFormatTree.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionFormatTree.java similarity index 84% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionFormatTree.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionFormatTree.java index 5f76bf38c1..a05d44b85a 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/tree/query/ftj/UnionFormatTree.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionFormatTree.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree.query.ftj; +package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier.Builder; -import cn.edu.tsinghua.iginx.filestore.struct.tree.query.Querier.Builder.Factory; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier.Builder; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.query.Querier.Builder.Factory; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; diff --git a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/units/UnitsMerger.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/units/UnitsMerger.java similarity index 92% rename from dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/units/UnitsMerger.java rename to dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/units/UnitsMerger.java index f832ceb239..cfe6a06d63 100644 --- a/dataSource/filestore/src/main/java/cn/edu/tsinghua/iginx/filestore/struct/units/UnitsMerger.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/units/UnitsMerger.java @@ -15,17 +15,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.units; +package cn.edu.tsinghua.iginx.filesystem.struct.units; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.shared.data.read.MergeFieldRowStreamWrapper; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.FileManager; -import cn.edu.tsinghua.iginx.filestore.struct.exception.NoSuchUnitException; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.FileManager; +import cn.edu.tsinghua.iginx.filesystem.struct.exception.NoSuchUnitException; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.thrift.AggregateType; import java.io.IOException; import java.util.ArrayList; diff --git a/dataSource/filestore/src/main/thrift/core.thrift b/dataSource/filesystem/src/main/thrift/core.thrift similarity index 100% rename from dataSource/filestore/src/main/thrift/core.thrift rename to dataSource/filesystem/src/main/thrift/core.thrift diff --git a/dataSource/filestore/src/main/thrift/filestore.thrift b/dataSource/filesystem/src/main/thrift/filesystem.thrift similarity index 95% rename from dataSource/filestore/src/main/thrift/filestore.thrift rename to dataSource/filesystem/src/main/thrift/filesystem.thrift index 8ea5201d9f..b84a09457e 100644 --- a/dataSource/filestore/src/main/thrift/filestore.thrift +++ b/dataSource/filesystem/src/main/thrift/filesystem.thrift @@ -18,11 +18,11 @@ include "rpc.thrift" include "core.thrift" -namespace java cn.edu.tsinghua.iginx.filestore.thrift +namespace java cn.edu.tsinghua.iginx.filesystem.thrift enum Status { OK, - FileStoreException, + FileSystemException, UnknownException, } @@ -72,7 +72,7 @@ struct RawInserted { 7: required string rawDataType } -service FileStoreRpc { +service FileSystemRpc { map getUnits (1: RawPrefix prefix) throws (1: RpcException e); RawDataSet query(1: DataUnit unit, 2: RawDataTarget target, 3: RawAggregate aggregate) throws (1: RpcException e); diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/common/FiltersTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/common/FiltersTest.java similarity index 97% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/common/FiltersTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/common/FiltersTest.java index 434ca38096..e019691285 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/common/FiltersTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/common/FiltersTest.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.common; +package cn.edu.tsinghua.iginx.filesystem.common; import cn.edu.tsinghua.iginx.engine.shared.data.Value; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetTestUtils.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetTestUtils.java similarity index 93% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetTestUtils.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetTestUtils.java index a7bfd6f848..a9e7eed023 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/format/parquet/ParquetTestUtils.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetTestUtils.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.format.parquet; +package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; -import cn.edu.tsinghua.iginx.filestore.test.DataValidator; +import cn.edu.tsinghua.iginx.filesystem.test.DataValidator; import com.google.common.io.MoreFiles; import java.io.IOException; import java.nio.file.Path; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/server/ServerTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/server/ServerTest.java similarity index 93% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/server/ServerTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/server/ServerTest.java index 956de73641..2eacfc9073 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/server/ServerTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/server/ServerTest.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.server; +package cn.edu.tsinghua.iginx.filesystem.server; -import cn.edu.tsinghua.iginx.filestore.service.rpc.server.Server; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.server.Server; import java.net.InetSocketAddress; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/AbstractServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/AbstractServiceTest.java similarity index 91% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/AbstractServiceTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/AbstractServiceTest.java index 6ffb2ffeda..e4b56f127c 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/AbstractServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/AbstractServiceTest.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service; +package cn.edu.tsinghua.iginx.filesystem.service; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.test.DataViewGenerator; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.test.DataViewGenerator; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.ArrayList; import java.util.List; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/remote/AbstractRemoteServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/AbstractRemoteServiceTest.java similarity index 80% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/remote/AbstractRemoteServiceTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/AbstractRemoteServiceTest.java index 42435ff03d..1cbbcc6b50 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/remote/AbstractRemoteServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/AbstractRemoteServiceTest.java @@ -15,13 +15,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.remote; +package cn.edu.tsinghua.iginx.filesystem.service.remote; -import cn.edu.tsinghua.iginx.filestore.service.Service; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.ClientConfig; -import cn.edu.tsinghua.iginx.filestore.service.rpc.client.RemoteService; -import cn.edu.tsinghua.iginx.filestore.service.rpc.server.Server; -import cn.edu.tsinghua.iginx.filestore.service.storage.AbstractStorageServiceTest; +import cn.edu.tsinghua.iginx.filesystem.service.Service; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.ClientConfig; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.client.RemoteService; +import cn.edu.tsinghua.iginx.filesystem.service.rpc.server.Server; +import cn.edu.tsinghua.iginx.filesystem.service.storage.AbstractStorageServiceTest; import com.typesafe.config.Config; import java.net.InetSocketAddress; import java.util.Random; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/remote/LegacyParquetRemoteServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/LegacyParquetRemoteServiceTest.java similarity index 87% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/remote/LegacyParquetRemoteServiceTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/LegacyParquetRemoteServiceTest.java index 1f08c94367..c2cc28a480 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/remote/LegacyParquetRemoteServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/LegacyParquetRemoteServiceTest.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.remote; +package cn.edu.tsinghua.iginx.filesystem.service.remote; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.LegacyParquet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.LegacyParquet; import com.typesafe.config.ConfigFactory; public class LegacyParquetRemoteServiceTest extends AbstractRemoteServiceTest { diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractDummyTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractDummyTest.java similarity index 88% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractDummyTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractDummyTest.java index 647241e593..659117c3b5 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractDummyTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractDummyTest.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -25,12 +25,12 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.service.Service; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.test.DataValidator; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.service.Service; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.test.DataValidator; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; import com.google.common.io.MoreFiles; import com.google.common.io.RecursiveDeleteOption; @@ -61,7 +61,7 @@ protected AbstractDummyTest(String type, Config config, String rootFileName) { protected Service service; - protected DataBoundary getBoundary(@Nullable String prefix) throws FileStoreException { + protected DataBoundary getBoundary(@Nullable String prefix) throws FileSystemException { Map units = service.getUnits(prefix); LOGGER.info("units: {}", units); assertEquals(units.keySet(), Collections.singleton(unit)); @@ -118,12 +118,12 @@ public void setUp() throws IOException { MoreFiles.createParentDirectories(root); } - protected void reset() throws IOException, FileStoreException { + protected void reset() throws IOException, FileSystemException { service = new StorageService(null, config); } @AfterEach - public void tearDown() throws IOException, FileStoreException { + public void tearDown() throws IOException, FileSystemException { if (service != null) { service.close(); } diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractHistoryDataTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractHistoryDataTest.java similarity index 93% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractHistoryDataTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractHistoryDataTest.java index fbcb3bcaac..a635de4c2a 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractHistoryDataTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractHistoryDataTest.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; -import static cn.edu.tsinghua.iginx.filestore.common.DataUnits.of; +import static cn.edu.tsinghua.iginx.filesystem.common.DataUnits.of; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; @@ -25,12 +25,12 @@ import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.BaseTagFilter; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.struct.DataTarget; -import cn.edu.tsinghua.iginx.filestore.struct.FileStructureManager; -import cn.edu.tsinghua.iginx.filestore.test.DataViewGenerator; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.struct.DataTarget; +import cn.edu.tsinghua.iginx.filesystem.struct.FileStructureManager; +import cn.edu.tsinghua.iginx.filesystem.test.DataViewGenerator; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.io.MoreFiles; @@ -74,16 +74,16 @@ public void afterEach() throws IOException { MoreFiles.deleteRecursively(root, RecursiveDeleteOption.ALLOW_INSECURE); } - protected StorageService newHistoryService() throws FileStoreException { + protected StorageService newHistoryService() throws FileSystemException { return new StorageService(historyConfig, null); } - protected StorageService newDummyService() throws FileStoreException { + protected StorageService newDummyService() throws FileSystemException { return new StorageService(null, dummyConfig); } @Test - public void testNoData() throws FileStoreException { + public void testNoData() throws FileSystemException { try (StorageService service = newDummyService()) { Map units = service.getUnits(null); Map expected = diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractStorageServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractStorageServiceTest.java similarity index 87% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractStorageServiceTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractStorageServiceTest.java index ea0e499f35..70a7a60f6e 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/AbstractStorageServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractStorageServiceTest.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; -import cn.edu.tsinghua.iginx.filestore.service.AbstractServiceTest; -import cn.edu.tsinghua.iginx.filestore.service.Service; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.service.AbstractServiceTest; +import cn.edu.tsinghua.iginx.filesystem.service.Service; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import com.typesafe.config.Config; import java.nio.file.Paths; import java.util.UUID; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/FileTreeDummyTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeDummyTest.java similarity index 96% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/FileTreeDummyTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeDummyTest.java index 2f04130cd2..19f8b9ba30 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/FileTreeDummyTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeDummyTest.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; import static org.junit.jupiter.api.Assertions.*; @@ -28,13 +28,13 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ValueFilter; -import cn.edu.tsinghua.iginx.filestore.common.Configs; -import cn.edu.tsinghua.iginx.filestore.format.raw.RawFormat; -import cn.edu.tsinghua.iginx.filestore.format.raw.RawReaderConfig; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTree; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; -import cn.edu.tsinghua.iginx.filestore.test.RowsBuilder; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.common.Configs; +import cn.edu.tsinghua.iginx.filesystem.format.raw.RawFormat; +import cn.edu.tsinghua.iginx.filesystem.format.raw.RawReaderConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTree; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.test.RowsBuilder; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.io.MoreFiles; import com.typesafe.config.Config; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/FileTreeParquetDummyTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeParquetDummyTest.java similarity index 93% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/FileTreeParquetDummyTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeParquetDummyTest.java index a289ceadd2..91a4d17fef 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/FileTreeParquetDummyTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeParquetDummyTest.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; import static cn.edu.tsinghua.iginx.thrift.DataType.*; import static org.junit.Assert.assertEquals; @@ -30,12 +30,12 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ValueFilter; -import cn.edu.tsinghua.iginx.filestore.common.Configs; -import cn.edu.tsinghua.iginx.filestore.format.parquet.ParquetTestUtils; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTree; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTreeConfig; -import cn.edu.tsinghua.iginx.filestore.test.TableBuilder; -import cn.edu.tsinghua.iginx.filestore.thrift.DataBoundary; +import cn.edu.tsinghua.iginx.filesystem.common.Configs; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.ParquetTestUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTree; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTreeConfig; +import cn.edu.tsinghua.iginx.filesystem.test.TableBuilder; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataBoundary; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import java.io.IOException; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/LegacyParquetHistoryDataTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetHistoryDataTest.java similarity index 88% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/LegacyParquetHistoryDataTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetHistoryDataTest.java index 850e533b36..9a60d2fa3b 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/LegacyParquetHistoryDataTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetHistoryDataTest.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.LegacyParquet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.LegacyParquet; import com.typesafe.config.ConfigFactory; public class LegacyParquetHistoryDataTest extends AbstractHistoryDataTest { diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/LegacyParquetStorageServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetStorageServiceTest.java similarity index 87% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/LegacyParquetStorageServiceTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetStorageServiceTest.java index e028a7ea9e..d7d0229517 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/service/storage/LegacyParquetStorageServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetStorageServiceTest.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.service.storage; +package cn.edu.tsinghua.iginx.filesystem.service.storage; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.LegacyParquet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.LegacyParquet; import com.typesafe.config.ConfigFactory; public class LegacyParquetStorageServiceTest extends AbstractStorageServiceTest { diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java similarity index 87% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java index d0a318124c..f1669ea7e3 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.common.utils; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.common.utils; import static org.junit.Assert.*; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.db.util.AreaSet; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data.LongFormat; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data.SerializeUtils; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data.StringFormat; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data.LongFormat; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data.SerializeUtils; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data.StringFormat; import com.google.common.collect.ImmutableRangeSet; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/io/ParquetFormatIOTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/io/ParquetFormatIOTest.java similarity index 95% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/io/ParquetFormatIOTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/io/ParquetFormatIOTest.java index 75127d3ee8..aac208a8f5 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/io/ParquetFormatIOTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/io/ParquetFormatIOTest.java @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.io; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.io; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IParquetReader; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IParquetWriter; -import cn.edu.tsinghua.iginx.filestore.format.parquet.IRecord; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy.Loader; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy.Storer; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.dummy.Table; -import cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.util.Constants; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IParquetReader; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IParquetWriter; +import cn.edu.tsinghua.iginx.filesystem.format.parquet.IRecord; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy.Loader; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy.Storer; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy.Table; +import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.primitives.Bytes; import com.google.common.primitives.Longs; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java similarity index 96% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java index c451abf98d..5b63afa9b0 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.legacy.parquet.manager.data; +package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import static org.junit.Assert.*; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeConfigTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfigTest.java similarity index 93% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeConfigTest.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfigTest.java index d5eeb1203b..3a2d283527 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/struct/tree/FileTreeConfigTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfigTest.java @@ -15,13 +15,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.struct.tree; +package cn.edu.tsinghua.iginx.filesystem.struct.tree; import static org.junit.jupiter.api.Assertions.*; -import cn.edu.tsinghua.iginx.filestore.common.AbstractConfig; -import cn.edu.tsinghua.iginx.filestore.format.raw.RawFormat; -import cn.edu.tsinghua.iginx.filestore.format.raw.RawReaderConfig; +import cn.edu.tsinghua.iginx.filesystem.common.AbstractConfig; +import cn.edu.tsinghua.iginx.filesystem.format.raw.RawFormat; +import cn.edu.tsinghua.iginx.filesystem.format.raw.RawReaderConfig; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import java.util.Collections; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/DataValidator.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataValidator.java similarity index 98% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/DataValidator.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataValidator.java index d754912cdd..83c3b7a827 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/DataValidator.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataValidator.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.test; +package cn.edu.tsinghua.iginx.filesystem.test; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/DataViewGenerator.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataViewGenerator.java similarity index 98% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/DataViewGenerator.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataViewGenerator.java index 233c4d4af0..24c338fc1b 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/DataViewGenerator.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataViewGenerator.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.test; +package cn.edu.tsinghua.iginx.filesystem.test; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; import cn.edu.tsinghua.iginx.engine.shared.data.write.RawData; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/RowsBuilder.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/RowsBuilder.java similarity index 98% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/RowsBuilder.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/RowsBuilder.java index c5a86e3db2..472e604d1c 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/RowsBuilder.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/RowsBuilder.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.test; +package cn.edu.tsinghua.iginx.filesystem.test; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; diff --git a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/TableBuilder.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/TableBuilder.java similarity index 98% rename from dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/TableBuilder.java rename to dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/TableBuilder.java index 79a087a30a..5723ec7949 100644 --- a/dataSource/filestore/src/test/java/cn/edu/tsinghua/iginx/filestore/test/TableBuilder.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/TableBuilder.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.filestore.test; +package cn.edu.tsinghua.iginx.filesystem.test; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; diff --git a/dataSource/filestore/src/test/resources/log4j2-test.properties b/dataSource/filesystem/src/test/resources/log4j2-test.properties similarity index 100% rename from dataSource/filestore/src/test/resources/log4j2-test.properties rename to dataSource/filesystem/src/test/resources/log4j2-test.properties diff --git a/dataSource/pom.xml b/dataSource/pom.xml index 7eea78028f..a33542a1c4 100644 --- a/dataSource/pom.xml +++ b/dataSource/pom.xml @@ -32,7 +32,7 @@ IGinX Driver - filestore + filesystem influxdb iotdb12 mongodb diff --git a/docker/oneShot-filestore/Dockerfile b/docker/oneShot-filestore/Dockerfile index e72f9b2748..e077c1f311 100644 --- a/docker/oneShot-filestore/Dockerfile +++ b/docker/oneShot-filestore/Dockerfile @@ -19,7 +19,7 @@ FROM maven:3-amazoncorretto-8 AS builder COPY . /root/IGinX WORKDIR /root/IGinX -RUN --mount=type=cache,target=/root/.m2 mvn clean package -pl core,dataSources/filestore -am -Dmaven.test.skip=true -Drevision=dev +RUN --mount=type=cache,target=/root/.m2 mvn clean package -pl core,dataSources/filesystem -am -Dmaven.test.skip=true -Drevision=dev FROM amazoncorretto:8 COPY --from=builder /root/IGinX/core/target/iginx-core-dev /root/IGinX diff --git a/pom.xml b/pom.xml index 49f7dcfc89..8432c069c6 100644 --- a/pom.xml +++ b/pom.xml @@ -120,7 +120,7 @@ cn.edu.tsinghua - filestore + filesystem ${project.version} diff --git a/session_py/file_example.py b/session_py/file_example.py index 8f0279bbe8..b7d6c9ae07 100644 --- a/session_py/file_example.py +++ b/session_py/file_example.py @@ -285,7 +285,7 @@ def load_largecsv_and_export(session: Session, csv_path, out_file_path="csv_outf def add_storage_engine(session: Session, ip: str = "127.0.0.1", port: int = 6668, - type: int = StorageEngineType.filestore, + type: int = StorageEngineType.filesystem, extra_params=None, dummy_path=None): if extra_params is None: extra_params = { diff --git a/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py b/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py index 0ada1ae714..90a3639d80 100644 --- a/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py +++ b/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py @@ -65,7 +65,7 @@ class StorageEngineType(object): unknown = 0 iotdb12 = 1 influxdb = 2 - filestore = 3 + filesystem = 3 relational = 4 mongodb = 5 redis = 6 @@ -74,7 +74,7 @@ class StorageEngineType(object): 0: "unknown", 1: "iotdb12", 2: "influxdb", - 3: "filestore", + 3: "filesystem", 4: "relational", 5: "mongodb", 6: "redis", @@ -84,7 +84,7 @@ class StorageEngineType(object): "unknown": 0, "iotdb12": 1, "influxdb": 2, - "filestore": 3, + "filesystem": 3, "relational": 4, "mongodb": 5, "redis": 6, diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/package-info.java b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/package-info.java index 000b542eaa..892dd705eb 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/package-info.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/package-info.java @@ -105,16 +105,16 @@ * * * - *

FileStore模块 + *

filesystem模块 * - *

FileStoreException是FileStore模块下所有自定义异常的基类。 + *

filesystemException是filesystem模块下所有自定义异常的基类。 * *

* *
  * PhysicalException
- * └─FileStoreException
- *   └─RemoteFileStoreException
+ * └─filesystemException
+ *   └─RemotefilesystemException
  * 
* *
diff --git a/test/pom.xml b/test/pom.xml index fe466e137a..74ee150fa9 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -42,11 +42,11 @@
cn.edu.tsinghua - filestore + filesystem cn.edu.tsinghua - filestore + filesystem ${project.version} tests test diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java index b0dc74fe14..41ce7ffcd7 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java @@ -25,7 +25,7 @@ import cn.edu.tsinghua.iginx.exception.SessionException; import cn.edu.tsinghua.iginx.integration.controller.Controller; -import cn.edu.tsinghua.iginx.integration.expansion.filestore.FileStoreCapacityExpansionIT; +import cn.edu.tsinghua.iginx.integration.expansion.filesystem.FileSystemCapacityExpansionIT; import cn.edu.tsinghua.iginx.integration.expansion.influxdb.InfluxDBCapacityExpansionIT; import cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools; import cn.edu.tsinghua.iginx.integration.tool.ConfLoader; @@ -60,7 +60,7 @@ public abstract class BaseCapacityExpansionIT { protected Map updatedParams = new HashMap<>(); - private final boolean IS_EMBEDDED = this instanceof FileStoreCapacityExpansionIT; + private final boolean IS_EMBEDDED = this instanceof FileSystemCapacityExpansionIT; private final String EXP_SCHEMA_PREFIX = null; @@ -872,10 +872,10 @@ protected void startStorageEngineWithIginx(int port, boolean hasData, boolean is iginxPath = ".github/scripts/iginx/iginx_windows.sh"; } - if (this instanceof FileStoreCapacityExpansionIT) { - scriptPath = ".github/scripts/dataSources/startup/filestore.sh"; + if (this instanceof FileSystemCapacityExpansionIT) { + scriptPath = ".github/scripts/dataSources/startup/filesystem.sh"; } else { - throw new IllegalStateException("Only support filestore"); + throw new IllegalStateException("Only support filesystem"); } int iginxPort = PORT_TO_IGINXPORT.get(port); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/constant/Constant.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/constant/Constant.java index e0fb2b0865..701b9859d8 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/constant/Constant.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/constant/Constant.java @@ -130,7 +130,7 @@ public class Constant { // key list public static List INIT_KEYS_LIST = Arrays.asList(1L, (long) Integer.MAX_VALUE); - // for filestore & influxdb + // for filesystem & influxdb public static Map PORT_TO_ROOT = new HashMap() { { diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filestore/FileStoreCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java similarity index 93% rename from test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filestore/FileStoreCapacityExpansionIT.java rename to test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java index e6f478c921..507f7ca401 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filestore/FileStoreCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.integration.expansion.filestore; +package cn.edu.tsinghua.iginx.integration.expansion.filesystem; -import static cn.edu.tsinghua.iginx.thrift.StorageEngineType.filestore; +import static cn.edu.tsinghua.iginx.thrift.StorageEngineType.filesystem; import static org.junit.Assert.fail; import cn.edu.tsinghua.iginx.exception.SessionException; -import cn.edu.tsinghua.iginx.filestore.format.raw.RawFormat; -import cn.edu.tsinghua.iginx.filestore.service.FileStoreConfig; -import cn.edu.tsinghua.iginx.filestore.struct.tree.FileTree; +import cn.edu.tsinghua.iginx.filesystem.format.raw.RawFormat; +import cn.edu.tsinghua.iginx.filesystem.service.FileSystemConfig; +import cn.edu.tsinghua.iginx.filesystem.struct.tree.FileTree; import cn.edu.tsinghua.iginx.integration.expansion.BaseCapacityExpansionIT; import cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools; import cn.edu.tsinghua.iginx.integration.tool.TempDummyDataSource; @@ -36,17 +36,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class FileStoreCapacityExpansionIT extends BaseCapacityExpansionIT { +public class FileSystemCapacityExpansionIT extends BaseCapacityExpansionIT { - private static final Logger LOGGER = LoggerFactory.getLogger(FileStoreCapacityExpansionIT.class); + private static final Logger LOGGER = LoggerFactory.getLogger(FileSystemCapacityExpansionIT.class); - public FileStoreCapacityExpansionIT() { - super(filestore, getAddStorageParams(), new FileStoreHistoryDataGenerator()); + public FileSystemCapacityExpansionIT() { + super(filesystem, getAddStorageParams(), new FileSystemHistoryDataGenerator()); } private static String getAddStorageParams() { Map params = new LinkedHashMap<>(); - params.put("dummy.struct", FileStoreConfig.DEFAULT_DATA_STRUCT); + params.put("dummy.struct", FileSystemConfig.DEFAULT_DATA_STRUCT); return getAddStorageParams(params); } @@ -62,7 +62,7 @@ public static String getAddStorageParams(Map params) { @Override protected void testInvalidDummyParams( int port, boolean hasData, boolean isReadOnly, String dataPrefix, String schemaPrefix) { - LOGGER.info("filestore skips test for wrong dummy engine params."); + LOGGER.info("filesystem skips test for wrong dummy engine params."); } @Override @@ -77,9 +77,9 @@ public void testShowColumns() { // show dummy columns try (TempDummyDataSource ignoredFileTree = - new TempDummyDataSource(session, 16667, filestore, getLegacyFileSystemDummyParams()); + new TempDummyDataSource(session, 16667, filesystem, getLegacyFileSystemDummyParams()); TempDummyDataSource ignoredLegacyFileSystem = - new TempDummyDataSource(session, 16668, filestore, getFileTreeDummyParams())) { + new TempDummyDataSource(session, 16668, filesystem, getFileTreeDummyParams())) { testShowDummyColumns(); } catch (SessionException e) { LOGGER.error("add or remove read only storage engine failed ", e); @@ -100,7 +100,7 @@ protected void testQuerySpecialHistoryData() { private void testQueryLegacyFileSystem() { try (TempDummyDataSource ignored = - new TempDummyDataSource(session, filestore, getLegacyFileSystemDummyParams())) { + new TempDummyDataSource(session, filesystem, getLegacyFileSystemDummyParams())) { testQueryRawChunks(); } catch (SessionException e) { LOGGER.error("add or remove read only storage engine failed ", e); @@ -110,7 +110,7 @@ private void testQueryLegacyFileSystem() { private void testQueryFileTree() { try (TempDummyDataSource ignored = - new TempDummyDataSource(session, filestore, getFileTreeDummyParams())) { + new TempDummyDataSource(session, filesystem, getFileTreeDummyParams())) { testQueryRawChunks(); testQueryParquets(); } catch (SessionException e) { diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filestore/FileStoreHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java similarity index 88% rename from test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filestore/FileStoreHistoryDataGenerator.java rename to test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java index a6e59eaf7a..4701d8312d 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filestore/FileStoreHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java @@ -16,18 +16,18 @@ * along with this program. If not, see . */ -package cn.edu.tsinghua.iginx.integration.expansion.filestore; +package cn.edu.tsinghua.iginx.integration.expansion.filesystem; import static cn.edu.tsinghua.iginx.integration.expansion.constant.Constant.IGINX_DATA_PATH_PREFIX_NAME; import static cn.edu.tsinghua.iginx.integration.expansion.constant.Constant.PORT_TO_ROOT; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; -import cn.edu.tsinghua.iginx.filestore.common.FileStoreException; -import cn.edu.tsinghua.iginx.filestore.service.FileStoreConfig; -import cn.edu.tsinghua.iginx.filestore.service.storage.StorageConfig; -import cn.edu.tsinghua.iginx.filestore.service.storage.StorageService; -import cn.edu.tsinghua.iginx.filestore.test.DataViewGenerator; -import cn.edu.tsinghua.iginx.filestore.thrift.DataUnit; +import cn.edu.tsinghua.iginx.filesystem.common.FileSystemException; +import cn.edu.tsinghua.iginx.filesystem.service.FileSystemConfig; +import cn.edu.tsinghua.iginx.filesystem.service.storage.StorageConfig; +import cn.edu.tsinghua.iginx.filesystem.service.storage.StorageService; +import cn.edu.tsinghua.iginx.filesystem.test.DataViewGenerator; +import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.integration.expansion.BaseHistoryDataGenerator; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.io.MoreFiles; @@ -46,11 +46,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class FileStoreHistoryDataGenerator extends BaseHistoryDataGenerator { +public class FileSystemHistoryDataGenerator extends BaseHistoryDataGenerator { - private static final Logger LOGGER = LoggerFactory.getLogger(FileStoreHistoryDataGenerator.class); + private static final Logger LOGGER = + LoggerFactory.getLogger(FileSystemHistoryDataGenerator.class); - public FileStoreHistoryDataGenerator() {} + public FileSystemHistoryDataGenerator() {} @Override public void writeHistoryData( @@ -79,7 +80,7 @@ public void writeHistoryData( StorageConfig config = new StorageConfig(); config.setRoot(PORT_TO_ROOT.get(port)); - config.setStruct(FileStoreConfig.DEFAULT_DATA_STRUCT); + config.setStruct(FileSystemConfig.DEFAULT_DATA_STRUCT); LOGGER.debug("config root {}", Paths.get(config.getRoot()).toFile().getAbsolutePath()); @@ -92,7 +93,7 @@ public void writeHistoryData( try (StorageService storageService = new StorageService(config, null)) { storageService.insert(dataUnit, dataView); - } catch (FileStoreException e) { + } catch (FileSystemException e) { LOGGER.error("create storage service failure", e); } @@ -184,7 +185,7 @@ private static void copyFileFromResource(String resourcePath, Path targetPath) { return; } try (InputStream is = - FileStoreHistoryDataGenerator.class.getClassLoader().getResourceAsStream(resourcePath)) { + FileSystemHistoryDataGenerator.class.getClassLoader().getResourceAsStream(resourcePath)) { if (is == null) { LOGGER.error("resource {} not found", resourcePath); return; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java index ec96c94600..2fc2d1965e 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java @@ -329,16 +329,16 @@ public void testAddStorageEngine() { } assertEquals(result.size(), 12); // TODO: 这里 6670 和 6671 看起来是重复的,因为之前这里有两个不同的对接层 FileSystem 和 Parquet - // 但是现在这两者合二为一成为 FileStore,所以这里的测试用例可能需要精简 + // 但是现在这两者合二为一成为 filesystem,所以这里的测试用例可能需要精简 // 详见:https://github.com/IGinX-THU/IGinX/pull/424 - assertTrue(result.get(1).contains("ip='127.0.0.1', port=6670, type='filestore'")); - assertFalse(result.get(1).contains("ip='127.0.0.1', port=6671, type='filestore'")); - assertFalse(result.get(4).contains("ip='127.0.0.1', port=6670, type='filestore'")); - assertFalse(result.get(4).contains("ip='127.0.0.1', port=6671, type='filestore'")); - assertTrue(result.get(7).contains("ip='127.0.0.1', port=6670, type='filestore'")); - assertTrue(result.get(7).contains("ip='127.0.0.1', port=6671, type='filestore'")); - assertFalse(result.get(10).contains("ip='127.0.0.1', port=6670, type='filestore'")); - assertFalse(result.get(10).contains("ip='127.0.0.1', port=6671, type='filestore'")); + assertTrue(result.get(1).contains("ip='127.0.0.1', port=6670, type='filesystem'")); + assertFalse(result.get(1).contains("ip='127.0.0.1', port=6671, type='filesystem'")); + assertFalse(result.get(4).contains("ip='127.0.0.1', port=6670, type='filesystem'")); + assertFalse(result.get(4).contains("ip='127.0.0.1', port=6671, type='filesystem'")); + assertTrue(result.get(7).contains("ip='127.0.0.1', port=6670, type='filesystem'")); + assertTrue(result.get(7).contains("ip='127.0.0.1', port=6671, type='filesystem'")); + assertFalse(result.get(10).contains("ip='127.0.0.1', port=6670, type='filesystem'")); + assertFalse(result.get(10).contains("ip='127.0.0.1', port=6671, type='filesystem'")); } @Test diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java index 236643eef2..a57110adfe 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java @@ -699,7 +699,7 @@ public void commitPythonExportBinaryToIginxTest() { params.put("dummy_dir", "test/src/test/resources/downloads/pics"); params.put("is_read_only", "true"); params.put("has_data", "true"); - session.addStorageEngine("127.0.0.1", 6660, StorageEngineType.filestore, params); + session.addStorageEngine("127.0.0.1", 6660, StorageEngineType.filesystem, params); String yamlFileName = OUTPUT_DIR_PREFIX + File.separator + "TransformBinaryExportToIginx.yaml"; diff --git a/test/src/test/resources/pySessionIT/tests.py b/test/src/test/resources/pySessionIT/tests.py index 6e9435fdf9..2ce425b050 100644 --- a/test/src/test/resources/pySessionIT/tests.py +++ b/test/src/test/resources/pySessionIT/tests.py @@ -58,7 +58,7 @@ def addStorageEngine(self): self.session.add_storage_engine( "127.0.0.1", 6670, - StorageEngineType.filestore, + StorageEngineType.filesystem, { "dummy_dir": f"{os.getcwd()}/pq/dummy", "iginx_port": "6888", @@ -78,7 +78,7 @@ def addStorageEngine(self): pq_engine = StorageEngine( "127.0.0.1", 6670, - StorageEngineType.filestore, + StorageEngineType.filesystem, { "dummy_dir": f"{os.getcwd()}/pq/dummy", "iginx_port": "6888", @@ -89,7 +89,7 @@ def addStorageEngine(self): fs_engine = StorageEngine( "127.0.0.1", 6671, - StorageEngineType.filestore, + StorageEngineType.filesystem, { "dummy_dir": f"{os.getcwd()}/fs/dummy", "iginx_port": "6888", diff --git a/test/src/test/resources/testConfig.properties b/test/src/test/resources/testConfig.properties index 986ce83395..af56b51d18 100644 --- a/test/src/test/resources/testConfig.properties +++ b/test/src/test/resources/testConfig.properties @@ -1,6 +1,6 @@ # the storage engine that you want to test #storageEngineList=iotdb12 -storageEngineList=IoTDB12,InfluxDB,FileStore,Relational,MongoDB,Redis +storageEngineList=IoTDB12,InfluxDB,FileSystem,Relational,MongoDB,Redis relationalStorageEngineList=PostgreSQL,MySQL # the test for every engine @@ -18,7 +18,7 @@ mongodb-test-list=UserPermissionIT,DataSourceIT,SQLSessionIT,SQLSessionPoolIT,SQ # isSupportSpecialCharacterPath: 是否支持路径上带特殊字符 IoTDB12-config=isSupportDiffTypeHistoryData=true,isSupportKey=true,isAbleToClearData=true,isAbleToDelete=true,isAbleToShowColumns=true,isSupportChinesePath=true,isSupportNumericalPath=true,isSupportSpecialCharacterPath=false InfluxDB-config=isSupportDiffTypeHistoryData=true,isSupportKey=true,isAbleToClearData=true,isAbleToDelete=false,isAbleToShowColumns=true,isSupportChinesePath=true,isSupportNumericalPath=true,isSupportSpecialCharacterPath=true -FileStore-config=isSupportDiffTypeHistoryData=true,isSupportKey=true,isAbleToClearData=true,isAbleToDelete=true,isAbleToShowColumns=true,isSupportChinesePath=true,isSupportNumericalPath=true,isSupportSpecialCharacterPath=true +FileSystem-config=isSupportDiffTypeHistoryData=true,isSupportKey=true,isAbleToClearData=true,isAbleToDelete=true,isAbleToShowColumns=true,isSupportChinesePath=true,isSupportNumericalPath=true,isSupportSpecialCharacterPath=true PostgreSQL-config=isSupportDiffTypeHistoryData=true,isSupportKey=false,isAbleToClearData=true,isAbleToDelete=true,isAbleToShowColumns=true,isSupportChinesePath=true,isSupportNumericalPath=true,isSupportSpecialCharacterPath=true MongoDB-config=isSupportDiffTypeHistoryData=true,isSupportKey=false,isAbleToClearData=true,isAbleToDelete=true,isAbleToShowColumns=true,isSupportChinesePath=true,isSupportNumericalPath=true,isSupportSpecialCharacterPath=true Redis-config=isSupportDiffTypeHistoryData=false,isSupportKey=false,isAbleToClearData=true,isAbleToDelete=true,isAbleToShowColumns=true,isSupportChinesePath=true,isSupportNumericalPath=true,isSupportSpecialCharacterPath=true @@ -27,7 +27,7 @@ MySQL-config=isSupportDiffTypeHistoryData=true,isSupportKey=false,isAbleToClearD # DataSources Test Config IoTDB12_mock=127.0.0.1#6667#IoTDB12#username=root#password=root#sessionPoolSize=20#has_data=false#is_read_only=false InfluxDB_mock=127.0.0.1#8086#InfluxDB#url=http://localhost:8086/#token=testToken#organization=testOrg#has_data=false -FileStore_mock=127.0.0.1#6667#filestore#iginx_port=6888#has_data=false#is_read_only=false#dir=data#data.config.write.buffer.size=104857600#data.config.write.buffer.timeout=0 +FileSystem_mock=127.0.0.1#6667#filesystem#iginx_port=6888#has_data=false#is_read_only=false#dir=data#data.config.write.buffer.size=104857600#data.config.write.buffer.timeout=0 PostgreSQL_mock=127.0.0.1#5432#relational#engine=postgresql#username=postgres#password=postgres#has_data=false MongoDB_mock=127.0.0.1#27017#MongoDB#has_data=false Redis_mock=127.0.0.1#6379#Redis#has_data=false#is_read_only=false#timeout=5000 @@ -37,7 +37,7 @@ MySQL_mock=127.0.0.1#3306#relational#engine=mysql#has_data=false#username=root#m # class name for each DB IoTDB12_class=cn.edu.tsinghua.iginx.iotdb.IoTDBStorage InfluxDB_class=cn.edu.tsinghua.iginx.influxdb.InfluxDBStorage -FileStore_class=cn.edu.tsinghua.iginx.filestore.FileStoreStorage +FileSystem_class=cn.edu.tsinghua.iginx.filesystem.FileSystemStorage PostgreSQL_class=cn.edu.tsinghua.iginx.relational.RelationalStorage MongoDB_class=cn.edu.tsinghua.iginx.mongodb.MongoDBStorage Redis_class=cn.edu.tsinghua.iginx.redis.RedisStorage @@ -46,7 +46,7 @@ MySQL_class=cn.edu.tsinghua.iginx.relational.RelationalStorage # class name for history data generator IoTDB12_data_gen_class=cn.edu.tsinghua.iginx.integration.expansion.iotdb.IoTDB12HistoryDataGenerator InfluxDB_data_gen_class=cn.edu.tsinghua.iginx.integration.expansion.influxdb.InfluxDBHistoryDataGenerator -FileStore_data_gen_class=cn.edu.tsinghua.iginx.integration.expansion.filestore.FileStoreHistoryDataGenerator +FileSystem_data_gen_class=cn.edu.tsinghua.iginx.integration.expansion.filesystem.FileSystemHistoryDataGenerator PostgreSQL_data_gen_class=cn.edu.tsinghua.iginx.integration.expansion.postgresql.PostgreSQLHistoryDataGenerator MongoDB_data_gen_class=cn.edu.tsinghua.iginx.integration.expansion.mongodb.MongoDBHistoryDataGenerator Redis_data_gen_class=cn.edu.tsinghua.iginx.integration.expansion.redis.RedisHistoryDataGenerator @@ -55,7 +55,7 @@ MySQL_data_gen_class=cn.edu.tsinghua.iginx.integration.expansion.mysql.MySQLHist # DB-CE port mapping, oriPort,expPort,readOnlyPort IoTDB12_port=6667,6668,6669 InfluxDB_port=8086,8087,8088 -FileStore_port=6667,6668,6669 +FileSystem_port=6667,6668,6669 PostgreSQL_port=5432,5433,5434 MongoDB_port=27017,27018,27019 Redis_port=6379,6380,6381 diff --git a/thrift/src/main/thrift/rpc.thrift b/thrift/src/main/thrift/rpc.thrift index ebade58e36..447dca0c93 100644 --- a/thrift/src/main/thrift/rpc.thrift +++ b/thrift/src/main/thrift/rpc.thrift @@ -31,7 +31,7 @@ enum StorageEngineType { unknown, iotdb12, influxdb, - filestore, + filesystem, relational, mongodb, redis From bc31041bd5ce19271bc0c83714faa88553482ff7 Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Tue, 24 Sep 2024 10:04:58 +0800 Subject: [PATCH 08/33] feat(sql): sql support const arithmetic expression (#447) sql support const arithmetic expression --- .../antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 2 +- .../logical/generator/QueryGenerator.java | 20 +++ .../engine/logical/utils/OperatorUtils.java | 13 +- .../engine/physical/PhysicalEngineImpl.java | 12 +- .../engine/physical/memory/execute/Table.java | 6 + .../naive/NaiveOperatorMemoryExecutor.java | 20 ++- .../stream/StreamOperatorMemoryExecutor.java | 24 +++- .../memory/execute/utils/ExprUtils.java | 3 + .../memory/execute/utils/RowUtils.java | 20 +++ .../task/UnaryMemoryPhysicalTask.java | 25 ++-- .../engine/physical/task/utils/TaskUtils.java | 4 +- .../engine/shared/function/FunctionUtils.java | 19 +++ .../engine/shared/source/ConstantSource.java | 40 ++++++ .../engine/shared/source/EmptySource.java | 2 +- .../engine/shared/source/SourceType.java | 3 +- .../tsinghua/iginx/sql/IginXSqlVisitor.java | 17 ++- .../select/UnarySelectStatement.java | 25 ++++ .../select/subclause/SelectClause.java | 9 ++ .../iginx/sql/utils/ExpressionUtils.java | 10 ++ .../optimizer/rules/ColumnPruningRule.java | 11 +- .../naive/NaiveConstraintManager.java | 3 + .../naive/NaivePhysicalOptimizer.java | 117 ++++++++++-------- .../integration/func/sql/SQLSessionIT.java | 95 ++++++++++++++ 23 files changed, 412 insertions(+), 88 deletions(-) create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/ConstantSource.java diff --git a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 index c0c1d3e77a..6db2671807 100644 --- a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 +++ b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 @@ -100,7 +100,7 @@ queryClause ; select - : selectClause fromClause whereClause? withClause? specialClause? + : selectClause (fromClause whereClause? withClause? specialClause?)? ; selectClause diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java index 2856aa5c30..84cc44ef56 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java @@ -41,6 +41,7 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OuterJoinType; +import cn.edu.tsinghua.iginx.engine.shared.source.ConstantSource; import cn.edu.tsinghua.iginx.engine.shared.source.GlobalSource; import cn.edu.tsinghua.iginx.engine.shared.source.OperatorSource; import cn.edu.tsinghua.iginx.engine.shared.source.Source; @@ -72,6 +73,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -175,6 +177,7 @@ private Operator generateRoot(UnarySelectStatement selectStatement) { root = initProjectWaitingForPath(selectStatement); root = root != null ? root : initFilterAndMergeFragmentsWithJoin(selectStatement); root = root != null ? root : initFromPart(selectStatement); + root = root != null ? root : initSelectConstArith(selectStatement); root = root != null ? root : initFilterAndMergeFragments(selectStatement); if (!checkRoot(root) && !checkIsMetaWritable()) { @@ -382,6 +385,23 @@ private Operator initFromPart(UnarySelectStatement selectStatement) { return root; } + /** + * 如果SelectStatement的select部分全为常数表达式且from部分为空,构造以ConstantSource为输入Project操作符来初始化操作符树 + * + * @param selectStatement select语句上下文 + * @return 以ConstantSource为输入Project操作符的操作符树; + */ + private Operator initSelectConstArith(UnarySelectStatement selectStatement) { + if (!selectStatement.isAllConstArith() || !selectStatement.getFromParts().isEmpty()) { + return null; + } + List columnNames = + selectStatement.getExpressions().stream() + .map(Expression::getColumnName) + .collect(Collectors.toList()); + return new Project(new ConstantSource(selectStatement.getExpressions()), columnNames, null); + } + /** * 如果SelectStatement有Join部分,根据Tag Filter和Path Prefix过滤选择Fragments,并将它们Join成一个操作符树 * diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java index 0cc7ec0393..2edc0833cd 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java @@ -38,6 +38,7 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OuterJoinType; +import cn.edu.tsinghua.iginx.engine.shared.source.ConstantSource; import cn.edu.tsinghua.iginx.engine.shared.source.FragmentSource; import cn.edu.tsinghua.iginx.engine.shared.source.OperatorSource; import cn.edu.tsinghua.iginx.engine.shared.source.Source; @@ -95,7 +96,8 @@ public static List findPathList(Operator operator) { if (OperatorType.isUnaryOperator(operator.getType())) { AbstractUnaryOperator unaryOperator = (AbstractUnaryOperator) operator; - if (unaryOperator.getSource().getType() != SourceType.Fragment) { + if (unaryOperator.getSource().getType() != SourceType.Fragment + && unaryOperator.getSource().getType() != SourceType.Constant) { pathList.addAll(findPathList(((OperatorSource) unaryOperator.getSource()).getOperator())); } } else if (OperatorType.isBinaryOperator(operator.getType())) { @@ -123,7 +125,7 @@ public static void findProjectOperators(List projectOperatorList, Opera if (OperatorType.isUnaryOperator(operator.getType())) { UnaryOperator unaryOp = (UnaryOperator) operator; Source source = unaryOp.getSource(); - if (source.getType() != SourceType.Fragment) { + if (source.getType() != SourceType.Fragment && source.getType() != SourceType.Constant) { findProjectOperators(projectOperatorList, ((OperatorSource) source).getOperator()); } } else if (OperatorType.isBinaryOperator(operator.getType())) { @@ -710,4 +712,11 @@ public static boolean covers(String a, String b) { } return true; } + + public static boolean isProjectFromConstant(Operator operator) { + if (operator instanceof Project) { + return ((Project) operator).getSource() instanceof ConstantSource; + } + return false; + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngineImpl.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngineImpl.java index e45dd0aa69..d75cab4bcc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngineImpl.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngineImpl.java @@ -20,6 +20,7 @@ import static cn.edu.tsinghua.iginx.engine.physical.task.utils.TaskUtils.getBottomTasks; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; +import cn.edu.tsinghua.iginx.engine.logical.utils.OperatorUtils; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.MemoryPhysicalTaskDispatcher; import cn.edu.tsinghua.iginx.engine.physical.optimizer.PhysicalOptimizer; @@ -83,9 +84,14 @@ public RowStream execute(RequestContext ctx, Operator root) throws PhysicalExcep } PhysicalTask task = optimizer.optimize(root, ctx); ctx.setPhysicalTree(task); - List bottomTasks = new ArrayList<>(); - getBottomTasks(bottomTasks, task); - commitBottomTasks(bottomTasks); + + // 空表查询特殊处理,不需要getBottomTasks + if (!OperatorUtils.isProjectFromConstant(root)) { + List bottomTasks = new ArrayList<>(); + getBottomTasks(bottomTasks, task); + commitBottomTasks(bottomTasks); + } + TaskExecuteResult result = task.getResult(); if (result.getException() != null) { throw result.getException(); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/Table.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/Table.java index 133123511c..7fb977f23b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/Table.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/Table.java @@ -36,6 +36,12 @@ public class Table implements RowStream { private RequestContext context; + public Table(Row row) { + this.header = row.getHeader(); + this.rows = Collections.singletonList(row); + this.index = 0; + } + public Table(Header header, List rows) { this.header = header; this.rows = rows; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java index 0929fd48c8..9f4b36a91a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java @@ -82,7 +82,9 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.ValueToSelectedPath; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OuterJoinType; +import cn.edu.tsinghua.iginx.engine.shared.source.ConstantSource; import cn.edu.tsinghua.iginx.engine.shared.source.EmptySource; +import cn.edu.tsinghua.iginx.engine.shared.source.Source; import cn.edu.tsinghua.iginx.thrift.DataType; import cn.edu.tsinghua.iginx.utils.Bitmap; import cn.edu.tsinghua.iginx.utils.Pair; @@ -191,7 +193,22 @@ private Table transformToTable(RowStream stream) throws PhysicalException { return new Table(header, rows); } - private RowStream executeProject(Project project, Table table) { + private RowStream executeProject(Project project, Table table) throws PhysicalException { + Source source = project.getSource(); + switch (source.getType()) { + case Operator: + case Empty: + return executeProjectFromOperator(project, table); + case Constant: + ConstantSource constantSource = (ConstantSource) source; + return new Table(RowUtils.buildConstRow(constantSource.getExpressionList())); + default: + throw new PhysicalException( + "Unexpected project source type in memory task: " + source.getType()); + } + } + + private RowStream executeProjectFromOperator(Project project, Table table) { List patterns = project.getPatterns(); Header header = table.getHeader(); List targetFields = new ArrayList<>(); @@ -358,7 +375,6 @@ private RowStream executeSetTransform(SetTransform setTransform, Table table) SetMappingFunction function = (SetMappingFunction) functionCall.getFunction(); FunctionParams params = functionCall.getParams(); Table functable = RowUtils.preRowTransform(table, rowTransformMap, functionCall); - ; if (setTransform.isDistinct()) { // min和max无需去重 if (!function.getIdentifier().equals(Max.MAX) diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java index 8672e2236d..1058513f85 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java @@ -23,6 +23,8 @@ import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.exception.UnexpectedOperatorException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.OperatorMemoryExecutor; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.RowUtils; import cn.edu.tsinghua.iginx.engine.shared.Constants; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; @@ -58,7 +60,9 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.UnaryOperator; import cn.edu.tsinghua.iginx.engine.shared.operator.Union; import cn.edu.tsinghua.iginx.engine.shared.operator.ValueToSelectedPath; +import cn.edu.tsinghua.iginx.engine.shared.source.ConstantSource; import cn.edu.tsinghua.iginx.engine.shared.source.EmptySource; +import cn.edu.tsinghua.iginx.engine.shared.source.Source; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -168,8 +172,19 @@ public RowStream executeBinaryOperator( return result; } - private RowStream executeProject(Project project, RowStream stream) { - return new ProjectLazyStream(project, stream); + private RowStream executeProject(Project project, RowStream stream) throws PhysicalException { + Source source = project.getSource(); + switch (source.getType()) { + case Operator: + case Empty: + return new ProjectLazyStream(project, stream); + case Constant: + ConstantSource constantSource = (ConstantSource) source; + return new Table(RowUtils.buildConstRow(constantSource.getExpressionList())); + default: + throw new PhysicalException( + "Unexpected project source type in memory task: " + source.getType()); + } } private RowStream executeSelect(Select select, RowStream stream) { @@ -197,7 +212,8 @@ private RowStream executeRowTransform(RowTransform rowTransform, RowStream strea return new RowTransformLazyStream(rowTransform, stream); } - private RowStream executeSetTransform(SetTransform setTransform, RowStream stream) { + private RowStream executeSetTransform(SetTransform setTransform, RowStream stream) + throws PhysicalException { List functionCallList = setTransform.getFunctionCallList(); Map, RowStream> distinctStreamMap = new HashMap<>(); Map, RowStream> rowTransformStreamMap = new HashMap<>(); @@ -252,7 +268,7 @@ private RowStream executeGroupBy(GroupBy groupBy, RowStream stream) { return new GroupByLazyStream(groupBy, stream); } - private RowStream executeDistinct(Distinct distinct, RowStream stream) { + private RowStream executeDistinct(Distinct distinct, RowStream stream) throws PhysicalException { Project project = new Project(EmptySource.EMPTY_SOURCE, distinct.getPatterns(), null); stream = executeProject(project, stream); return new DistinctLazyStream(stream); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java index 5b17092abb..3253075070 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java @@ -94,6 +94,9 @@ private static Value calculateBaseExpr(Row row, BaseExpression baseExpr) { private static Value calculateFuncExpr(Row row, FuncExpression funcExpr) throws PhysicalException { + if (row == null) { + row = RowUtils.buildConstRow(funcExpr.getExpressions()); + } String colName = funcExpr.getColumnName(); int index = row.getHeader().indexOf(colName); if (index == -1) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java index 0ffcf646a8..c862e5a4c1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java @@ -32,6 +32,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; @@ -46,6 +47,7 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.Downsample; import cn.edu.tsinghua.iginx.engine.shared.operator.GroupBy; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; +import cn.edu.tsinghua.iginx.sql.utils.ExpressionUtils; import cn.edu.tsinghua.iginx.thrift.DataType; import cn.edu.tsinghua.iginx.utils.Pair; import java.util.*; @@ -1350,4 +1352,22 @@ public static Table preRowTransform( } return ret; } + + public static Row buildConstRow(List expressions) throws PhysicalException { + List fields = new ArrayList<>(); + Object[] values = new Object[expressions.size()]; + + for (int i = 0; i < expressions.size(); i++) { + Expression expression = expressions.get(i); + if (!ExpressionUtils.isConstantArithmeticExpr(expression)) { + throw new PhysicalException("expression is not constant: " + expression.getColumnName()); + } + Value value = ExprUtils.calculateExpr(null, expression); + values[i] = value.getValue(); + fields.add(new Field(expression.getColumnName(), value.getDataType())); + } + + Header header = new Header(fields); + return new Row(header, values); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/UnaryMemoryPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/UnaryMemoryPhysicalTask.java index 8240947cf1..20666efe9c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/UnaryMemoryPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/UnaryMemoryPhysicalTask.java @@ -18,10 +18,12 @@ package cn.edu.tsinghua.iginx.engine.physical.task; +import cn.edu.tsinghua.iginx.engine.logical.utils.OperatorUtils; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.exception.UnexpectedOperatorException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.OperatorMemoryExecutor; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.OperatorMemoryExecutorFactory; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream.EmptyRowStream; import cn.edu.tsinghua.iginx.engine.physical.task.visitor.TaskVisitor; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; @@ -52,18 +54,25 @@ public PhysicalTask getParentTask() { return parentTask; } + public boolean isProjectFromConstant() { + return !getOperators().isEmpty() && OperatorUtils.isProjectFromConstant(getOperators().get(0)); + } + @Override public TaskExecuteResult execute() { - TaskExecuteResult parentResult = parentTask.getResult(); - if (parentResult == null) { - return new TaskExecuteResult( - new PhysicalException("unexpected parent task execute result for " + this + ": null")); - } - if (parentResult.getException() != null) { - return parentResult; + RowStream stream = new EmptyRowStream(); + if (!isProjectFromConstant()) { + TaskExecuteResult parentResult = parentTask.getResult(); + if (parentResult == null) { + return new TaskExecuteResult( + new PhysicalException("unexpected parent task execute result for " + this + ": null")); + } + if (parentResult.getException() != null) { + return parentResult; + } + stream = parentResult.getRowStream(); } List operators = getOperators(); - RowStream stream = parentResult.getRowStream(); OperatorMemoryExecutor executor = OperatorMemoryExecutorFactory.getInstance().getMemoryExecutor(); try { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/utils/TaskUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/utils/TaskUtils.java index ea72b82bd4..ebdfe58fe5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/utils/TaskUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/utils/TaskUtils.java @@ -42,7 +42,9 @@ public static void getBottomTasks(List tasks, PhysicalTask root) { break; case UnaryMemory: UnaryMemoryPhysicalTask unaryMemoryPhysicalTask = (UnaryMemoryPhysicalTask) root; - getBottomTasks(tasks, unaryMemoryPhysicalTask.getParentTask()); + if (!unaryMemoryPhysicalTask.isProjectFromConstant()) { + getBottomTasks(tasks, unaryMemoryPhysicalTask.getParentTask()); + } break; case MultipleMemory: MultipleMemoryPhysicalTask multipleMemoryPhysicalTask = (MultipleMemoryPhysicalTask) root; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java index f2fe12da62..94b009b1ee 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java @@ -162,6 +162,25 @@ public static String getFunctionName(Function function) { "sum", (dataType) -> isWholeNumber(dataType) ? DataType.LONG : DataType.DOUBLE); } + static Map expectedParamNumMap = new HashMap<>(); // 此Map用于存储function期望的参数个数 + + static { + expectedParamNumMap.put("avg", 1); + expectedParamNumMap.put("sum", 1); + expectedParamNumMap.put("count", 1); + expectedParamNumMap.put("max", 1); + expectedParamNumMap.put("min", 1); + expectedParamNumMap.put("first_value", 1); + expectedParamNumMap.put("last_value", 1); + expectedParamNumMap.put("first", 1); + expectedParamNumMap.put("last", 1); + expectedParamNumMap.put("ratio", 2); + } + + public static int getExpectedParamNum(String identifier) { + return expectedParamNumMap.get(identifier.toLowerCase()); + } + /** * 用于提取table中的表头字段和对应的索引 * diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/ConstantSource.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/ConstantSource.java new file mode 100644 index 0000000000..716bdeea80 --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/ConstantSource.java @@ -0,0 +1,40 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.engine.shared.source; + +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; +import java.util.ArrayList; +import java.util.List; + +public class ConstantSource extends AbstractSource { + private final List expressionList; + + public ConstantSource(List expressionList) { + super(SourceType.Constant); + this.expressionList = new ArrayList<>(expressionList); + } + + public List getExpressionList() { + return expressionList; + } + + @Override + public Source copy() { + return new ConstantSource(expressionList); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/EmptySource.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/EmptySource.java index 0bf4126f4f..9ebd45e18c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/EmptySource.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/EmptySource.java @@ -24,7 +24,7 @@ public class EmptySource implements Source { @Override public SourceType getType() { - return null; + return SourceType.Empty; } @Override diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/SourceType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/SourceType.java index fb2a9eb2e4..7849b7fe46 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/SourceType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/SourceType.java @@ -19,7 +19,8 @@ public enum SourceType { Unknown, - + Empty, + Constant, Fragment, Operator, Global, diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index 7b002d28a5..2b9b63bd73 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -942,15 +942,7 @@ private void parseSelectPaths(SelectClauseContext ctx, UnarySelectStatement sele if (ret.size() == 1 && select.asClause() != null) { ret.get(0).setAlias(select.asClause().ID().getText()); } - ret.forEach( - expression -> { - if (ExpressionUtils.isConstantArithmeticExpr(expression)) { - throw new SQLParserException( - "SELECT constant arithmetic expression isn't supported yet."); - } else { - selectStatement.addSelectClauseExpression(expression); - } - }); + ret.forEach(selectStatement::addSelectClauseExpression); } } @@ -1081,7 +1073,11 @@ private Expression parseFuncExpression( List args = new ArrayList<>(); ListIterator iter = columns.listIterator(columns.size()); - while (iter.hasPrevious()) { + int expectedColumnsSize = + FunctionUtils.isSysFunc(funcName) + ? FunctionUtils.getExpectedParamNum(funcName) + : 1; // 目前,只把UDF常数参数中的第一个转化成常量列传入UDF,剩余其它常量参数依然是作为现有UDF的常量参数传进去 + while (iter.hasPrevious() && columns.size() > expectedColumnsSize) { Expression expression = iter.previous(); if (!ExpressionUtils.isConstantArithmeticExpr(expression)) { break; @@ -1098,6 +1094,7 @@ private Expression parseFuncExpression( args.add(value.getValue()); iter.remove(); } + Collections.reverse(args); Map kwargs = new HashMap<>(); for (ParamContext paramContext : funcCtx.param()) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java index 350de74b7d..17b4fceaee 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java @@ -35,10 +35,13 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; import cn.edu.tsinghua.iginx.sql.exception.SQLParserException; import cn.edu.tsinghua.iginx.sql.statement.StatementType; +import cn.edu.tsinghua.iginx.sql.statement.frompart.CteFromPart; import cn.edu.tsinghua.iginx.sql.statement.frompart.FromPart; import cn.edu.tsinghua.iginx.sql.statement.frompart.FromPartType; +import cn.edu.tsinghua.iginx.sql.statement.frompart.PathFromPart; import cn.edu.tsinghua.iginx.sql.statement.frompart.SubQueryFromPart; import cn.edu.tsinghua.iginx.sql.statement.select.subclause.*; +import cn.edu.tsinghua.iginx.sql.utils.ExpressionUtils; import cn.edu.tsinghua.iginx.thrift.AggregateType; import cn.edu.tsinghua.iginx.utils.Pair; import cn.edu.tsinghua.iginx.utils.StringUtils; @@ -215,6 +218,10 @@ public void setHasValueToSelectedPath(boolean hasValueToSelectedPath) { selectClause.setHasValueToSelectedPath(hasValueToSelectedPath); } + public boolean isAllConstArith() { + return selectClause.isAllConstArith(); + } + public boolean isLastFirst() { return getQueryType().equals(QueryType.MappingQuery) && selectClause.isLastFirst(); } @@ -617,6 +624,24 @@ public boolean isFromSinglePath() { } public void checkQueryType() { + boolean isAllConstArith = + getExpressions().stream().allMatch(ExpressionUtils::isConstantArithmeticExpr); + selectClause.setAllConstArith(isAllConstArith); + if (getFromParts().isEmpty() && !isAllConstArith) { + throw new SQLParserException( + "Statement without FROM clause should only contain constant arithmetic expressions."); + } + if (isAllConstArith) { + fromClause + .getFromParts() + .forEach( + fromPart -> { + if (fromPart instanceof PathFromPart || fromPart instanceof CteFromPart) { + selectClause.addPath(fromPart.getOriginPrefix() + ".*"); + } + }); + } + Set typeList = new HashSet<>(); for (Expression expression : getExpressions()) { typeList.add(getExprMappingType(expression)); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java index 90fcf2d7c4..b40878382c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java @@ -33,6 +33,7 @@ public class SelectClause { private final List selectSubQueryParts; private boolean isDistinct = false; private boolean hasValueToSelectedPath = false; + private boolean isAllConstArith = false; private final List expressions; private final Set pathSet; @@ -66,6 +67,14 @@ public void setHasValueToSelectedPath(boolean hasValueToSelectedPath) { this.hasValueToSelectedPath = hasValueToSelectedPath; } + public boolean isAllConstArith() { + return isAllConstArith; + } + + public void setAllConstArith(boolean allConstArith) { + this.isAllConstArith = allConstArith; + } + public boolean isLastFirst() { List funcList = getTargetTypeFuncExprList(MappingType.Mapping); boolean isLastFirst = true; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java index 7e1a0b6160..899bf55126 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java @@ -21,6 +21,8 @@ import cn.edu.tsinghua.iginx.engine.shared.expr.BinaryExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.BracketExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; +import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.MultipleExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.Operator; import cn.edu.tsinghua.iginx.engine.shared.expr.UnaryExpression; @@ -40,6 +42,14 @@ public static boolean isConstantArithmeticExpr(Expression expression) { BinaryExpression binaryExpression = (BinaryExpression) expression; return isConstantArithmeticExpr(binaryExpression.getLeftExpression()) && isConstantArithmeticExpr(binaryExpression.getRightExpression()); + case Function: + FuncExpression funcExpression = (FuncExpression) expression; + return funcExpression.getExpressions().stream() + .allMatch(ExpressionUtils::isConstantArithmeticExpr); + case Multiple: + MultipleExpression multipleExpression = (MultipleExpression) expression; + return multipleExpression.getChildren().stream() + .allMatch(ExpressionUtils::isConstantArithmeticExpr); default: return false; } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java index a082fd996c..dbd44390ae 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java @@ -33,8 +33,10 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.tag.AndTagFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; +import cn.edu.tsinghua.iginx.engine.shared.source.ConstantSource; import cn.edu.tsinghua.iginx.engine.shared.source.FragmentSource; import cn.edu.tsinghua.iginx.engine.shared.source.OperatorSource; +import cn.edu.tsinghua.iginx.engine.shared.source.Source; import cn.edu.tsinghua.iginx.logical.optimizer.core.RuleCall; import cn.edu.tsinghua.iginx.utils.Pair; import cn.edu.tsinghua.iginx.utils.StringUtils; @@ -190,14 +192,11 @@ private void collectColumns( // 递归处理下一个节点 visitedOperators.add(operator); - if (((UnaryOperator) operator).getSource() instanceof FragmentSource) { + Source source = ((UnaryOperator) operator).getSource(); + if (source instanceof FragmentSource || source instanceof ConstantSource) { return; } - collectColumns( - ((OperatorSource) ((UnaryOperator) operator).getSource()).getOperator(), - columns, - tagFilter, - visitedOperators); + collectColumns(((OperatorSource) source).getOperator(), columns, tagFilter, visitedOperators); } else if (OperatorType.isBinaryOperator(operator.getType())) { // 下面是处理BinaryOperator的情况,其中只有Join操作符需要处理 diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveConstraintManager.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveConstraintManager.java index 23f3767608..230e61865d 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveConstraintManager.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveConstraintManager.java @@ -76,6 +76,9 @@ private boolean checkUnaryOperator(UnaryOperator unaryOperator) { if (source == null) { return false; } + if (source.getType() == SourceType.Constant) { + return true; + } if (source.getType() == SourceType.Fragment) { return unaryOperator.getType() == OperatorType.Project || unaryOperator.getType() == OperatorType.Delete diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaivePhysicalOptimizer.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaivePhysicalOptimizer.java index 67960fe419..57569f447c 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaivePhysicalOptimizer.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaivePhysicalOptimizer.java @@ -18,6 +18,7 @@ package cn.edu.tsinghua.iginx.physical.optimizer.naive; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; +import cn.edu.tsinghua.iginx.engine.physical.memory.MemoryPhysicalTaskDispatcher; import cn.edu.tsinghua.iginx.engine.physical.optimizer.PhysicalOptimizer; import cn.edu.tsinghua.iginx.engine.physical.optimizer.ReplicaDispatcher; import cn.edu.tsinghua.iginx.engine.physical.task.*; @@ -61,17 +62,30 @@ public void setRules(Collection rules) {} private PhysicalTask constructTask(Operator operator, RequestContext context) { if (OperatorType.isUnaryOperator(operator.getType())) { - UnaryOperator unaryOperator = (UnaryOperator) operator; - Source source = unaryOperator.getSource(); - if (source.getType() == SourceType.Fragment) { // 构建物理计划 - List operators = new ArrayList<>(); + return constructUnaryTask((UnaryOperator) operator, context); + } else if (OperatorType.isBinaryOperator(operator.getType())) { + return constructBinaryTask((BinaryOperator) operator, context); + } else if (operator.getType().equals(OperatorType.ShowColumns)) { + return new GlobalPhysicalTask(operator, context); + } else if (OperatorType.isMultipleOperator(operator.getType())) { + return constructMultipleTask((MultipleOperator) operator, context); + } else { + throw new IllegalArgumentException("Unexpected operator type: " + operator.getType()); + } + } + + private PhysicalTask constructUnaryTask(UnaryOperator operator, RequestContext context) { + List operators = new ArrayList<>(); + Source source = operator.getSource(); + switch (source.getType()) { + case Fragment: // 构建物理计划 operators.add(operator); if (OperatorType.isNeedBroadcasting(operator.getType())) { return new StoragePhysicalTask(operators, true, true, context); } else { return new StoragePhysicalTask(operators, context); } - } else { // 构建内存中的计划 + case Operator: // 构建内存中的计划 OperatorSource operatorSource = (OperatorSource) source; Operator sourceOperator = operatorSource.getOperator(); PhysicalTask sourceTask = constructTask(operatorSource.getOperator(), context); @@ -91,60 +105,65 @@ private PhysicalTask constructTask(Operator operator, RequestContext context) { case SetTransform: sourceTask.getOperators().add(operator); return sourceTask; + default: + break; } } - List operators = new ArrayList<>(); operators.add(operator); PhysicalTask task = new UnaryMemoryPhysicalTask(operators, sourceTask, context); sourceTask.setFollowerTask(task); return task; + case Constant: + operators.add(operator); + UnaryMemoryPhysicalTask ret = new UnaryMemoryPhysicalTask(operators, null, context); + MemoryPhysicalTaskDispatcher.getInstance().addMemoryTask(ret); + return ret; + default: + throw new IllegalArgumentException("Unsupported operator type: " + source.getType()); + } + } + + private PhysicalTask constructBinaryTask(BinaryOperator operator, RequestContext context) { + OperatorSource sourceA = (OperatorSource) operator.getSourceA(); + OperatorSource sourceB = (OperatorSource) operator.getSourceB(); + PhysicalTask sourceTaskA = constructTask(sourceA.getOperator(), context); + PhysicalTask sourceTaskB = constructTask(sourceB.getOperator(), context); + List operators = new ArrayList<>(); + operators.add(operator); + PhysicalTask task = new BinaryMemoryPhysicalTask(operators, sourceTaskA, sourceTaskB, context); + sourceTaskA.setFollowerTask(task); + sourceTaskB.setFollowerTask(task); + return task; + } + + private PhysicalTask constructMultipleTask(MultipleOperator operator, RequestContext context) { + List parentTasks = new ArrayList<>(); + for (Source source : operator.getSources()) { + OperatorSource operatorSource = (OperatorSource) source; + PhysicalTask parentTask = constructTask(operatorSource.getOperator(), context); + parentTasks.add(parentTask); + } + List operators = new ArrayList<>(); + operators.add(operator); + + PhysicalTask task; + if (operator.getType().equals(OperatorType.Folded)) { + FoldedOperator foldedOperator = (FoldedOperator) operator; + PhysicalTask foldedTask = + new FoldedMemoryPhysicalTask( + operators, foldedOperator.getIncompleteRoot(), parentTasks, context); + for (PhysicalTask parentTask : parentTasks) { + parentTask.setFollowerTask(foldedTask); } - } else if (OperatorType.isBinaryOperator(operator.getType())) { - BinaryOperator binaryOperator = (BinaryOperator) operator; - OperatorSource sourceA = (OperatorSource) binaryOperator.getSourceA(); - OperatorSource sourceB = (OperatorSource) binaryOperator.getSourceB(); - PhysicalTask sourceTaskA = constructTask(sourceA.getOperator(), context); - PhysicalTask sourceTaskB = constructTask(sourceB.getOperator(), context); - List operators = new ArrayList<>(); - operators.add(operator); - PhysicalTask task = - new BinaryMemoryPhysicalTask(operators, sourceTaskA, sourceTaskB, context); - sourceTaskA.setFollowerTask(task); - sourceTaskB.setFollowerTask(task); - return task; - } else if (operator.getType().equals(OperatorType.ShowColumns)) { - return new GlobalPhysicalTask(operator, context); + task = new CompletedFoldedPhysicalTask(foldedTask, context); + foldedTask.setFollowerTask(task); } else { - MultipleOperator multipleOperator = (MultipleOperator) operator; - List sources = multipleOperator.getSources(); - List parentTasks = new ArrayList<>(); - for (Source source : sources) { - OperatorSource operatorSource = (OperatorSource) source; - PhysicalTask parentTask = constructTask(operatorSource.getOperator(), context); - parentTasks.add(parentTask); - } - List operators = new ArrayList<>(); - operators.add(operator); - - PhysicalTask task; - if (operator.getType().equals(OperatorType.Folded)) { - FoldedOperator foldedOperator = (FoldedOperator) multipleOperator; - PhysicalTask foldedTask = - new FoldedMemoryPhysicalTask( - operators, foldedOperator.getIncompleteRoot(), parentTasks, context); - for (PhysicalTask parentTask : parentTasks) { - parentTask.setFollowerTask(foldedTask); - } - task = new CompletedFoldedPhysicalTask(foldedTask, context); - foldedTask.setFollowerTask(task); - } else { - task = new MultipleMemoryPhysicalTask(operators, parentTasks, context); - for (PhysicalTask parentTask : parentTasks) { - parentTask.setFollowerTask(task); - } + task = new MultipleMemoryPhysicalTask(operators, parentTasks, context); + for (PhysicalTask parentTask : parentTasks) { + parentTask.setFollowerTask(task); } - return task; } + return task; } private static class NaivePhysicalOptimizerHolder { diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 5450c6d1ed..8b230a0a98 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -8564,4 +8564,99 @@ public void testMultiLineComment() { + "Total line number = 1\n"; executor.executeAndCompare(statement, expect); } + + @Test + public void testSelectWithoutFromClause() { + String statement = "select 1+1 as one_plus_one, 2, 3*3, 10 as ten;"; + String expected = + "ResultSets:\n" + + "+------------+-+-----+---+\n" + + "|one_plus_one|2|3 × 3|ten|\n" + + "+------------+-+-----+---+\n" + + "| 2|2| 9| 10|\n" + + "+------------+-+-----+---+\n" + + "Total line number = 1\n"; + executor.executeAndCompare(statement, expected); + + statement = "select ratio(20, 5) as rate;"; + expected = + "ResultSets:\n" + + "+----+\n" + + "|rate|\n" + + "+----+\n" + + "| 4.0|\n" + + "+----+\n" + + "Total line number = 1\n"; + executor.executeAndCompare(statement, expected); + } + + @Test + public void testConstantExpression() { + String insert = "insert into test.a(key, a, b) values (1, 1, 1.1), (2, 3, 3.1);"; + executor.execute(insert); + insert = "insert into test.b(key, a, b) values (1, 2, 2.1), (2, 3, 3.1), (3, 4, 4.1);"; + executor.execute(insert); + + String statement = "select 1, 2+19, 4*2 as eight from test.a;"; + String expected = + "ResultSets:\n" + + "+---+-+------+-----+\n" + + "|key|1|2 + 19|eight|\n" + + "+---+-+------+-----+\n" + + "| 1|1| 21| 8|\n" + + "| 2|1| 21| 8|\n" + + "+---+-+------+-----+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + statement = "select 1, a from test.a;"; + expected = + "ResultSets:\n" + + "+---+-+--------+\n" + + "|key|1|test.a.a|\n" + + "+---+-+--------+\n" + + "| 1|1| 1|\n" + + "| 2|1| 3|\n" + + "+---+-+--------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + statement = "select 1, a from test.a where a > 2;"; + expected = + "ResultSets:\n" + + "+---+-+--------+\n" + + "|key|1|test.a.a|\n" + + "+---+-+--------+\n" + + "| 2|1| 3|\n" + + "+---+-+--------+\n" + + "Total line number = 1\n"; + executor.executeAndCompare(statement, expected); + + statement = "select sum(1), sum(a), avg(1), count(1) from test.b;"; + expected = + "ResultSets:\n" + + "+------+-------------+------+--------+\n" + + "|sum(1)|sum(test.b.a)|avg(1)|count(1)|\n" + + "+------+-------------+------+--------+\n" + + "| 3| 9| 1.0| 3|\n" + + "+------+-------------+------+--------+\n" + + "Total line number = 1\n"; + executor.executeAndCompare(statement, expected); + + statement = "select 1, 2+19, 4*2 as eight from test.a, test.b;"; + expected = + "ResultSets:\n" + + "+-+------+-----+\n" + + "|1|2 + 19|eight|\n" + + "+-+------+-----+\n" + + "|1| 21| 8|\n" + + "|1| 21| 8|\n" + + "|1| 21| 8|\n" + + "|1| 21| 8|\n" + + "|1| 21| 8|\n" + + "|1| 21| 8|\n" + + "+-+------+-----+\n" + + "Total line number = 6\n"; + executor.executeAndCompare(statement, expected); + } } From 8080e896c8ffaf2c9da1bea5f87efeab610d5c76 Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Fri, 11 Oct 2024 15:52:50 +0800 Subject: [PATCH 09/33] feat(sql): auto increment sequence & alter key (#458) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 增加生成自增列的语法 2. 增加KEY列的操作语法,包括:将特定列升级成KEY列,将KEY列降级成普通列 详见https://oxlh5mrwi0.feishu.cn/docx/Gd8pd1aMDoNMIexXBPJcaea6n0g --- .../antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 15 +- .../logical/generator/QueryGenerator.java | 27 +++ .../naive/NaiveOperatorMemoryExecutor.java | 59 +++++-- .../execute/stream/AddSequenceLazyStream.java | 90 ++++++++++ .../execute/stream/RenameLazyStream.java | 23 ++- .../stream/StreamOperatorMemoryExecutor.java | 9 + .../memory/execute/utils/ExprUtils.java | 23 +++ .../memory/execute/utils/RowUtils.java | 45 ++++- .../iginx/engine/shared/data/read/Header.java | 32 +++- .../iginx/engine/shared/data/read/Row.java | 2 +- .../iginx/engine/shared/expr/Expression.java | 2 + .../engine/shared/expr/ExpressionVisitor.java | 4 + .../engine/shared/expr/KeyExpression.java | 61 +++++++ .../shared/expr/SequenceExpression.java | 79 +++++++++ .../function/system/utils/ValueUtils.java | 45 +++++ .../engine/shared/operator/AddSequence.java | 96 +++++++++++ .../shared/operator/type/OperatorType.java | 1 + .../tsinghua/iginx/sql/IginXSqlVisitor.java | 62 ++++++- .../sql/statement/select/SelectStatement.java | 2 + .../select/UnarySelectStatement.java | 21 ++- .../select/subclause/SelectClause.java | 13 ++ .../optimizer/rules/ColumnPruningRule.java | 4 + .../FilterPushDownAddSchemaPrefixRule.java | 6 + .../rules/FilterPushDownRenameRule.java | 6 + .../rules/FilterPushDownTransformRule.java | 6 + .../session/SessionExecuteSqlResult.java | 2 +- .../integration/func/sql/SQLSessionIT.java | 163 +++++++++++++++++- 27 files changed, 859 insertions(+), 39 deletions(-) create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSequenceLazyStream.java create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSequence.java diff --git a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 index 6db2671807..6b664d9655 100644 --- a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 +++ b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 @@ -109,7 +109,16 @@ selectClause ; selectSublist - : expression asClause? + : KEY (asClause | asKeyClause) + | (expression | sequence) (asClause | asKeyClause)? + ; + +sequence + : SEQUENCE LR_BRACKET (start = constant COMMA increment = constant)? RR_BRACKET + ; + +asKeyClause + : AS KEY ; expression @@ -1126,6 +1135,10 @@ ELSE END : E N D ; + +SEQUENCE + : S E Q U E N C E + ; //============================ // End of the keywords list diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java index 84cc44ef56..7f2961bdb7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java @@ -29,6 +29,7 @@ import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.expr.FromValueExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.SequenceExpression; import cn.edu.tsinghua.iginx.engine.shared.function.Function; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; @@ -213,6 +214,8 @@ private Operator generateRoot(UnarySelectStatement selectStatement) { root = buildLimit(selectStatement, root); + root = buildAddSequence(selectStatement, root); + root = buildReorder(selectStatement, root); root = buildRename(selectStatement, root); @@ -682,6 +685,30 @@ private Operator buildDownSampleQuery(UnarySelectStatement selectStatement, Oper new KeyRange(selectStatement.getStartKey(), selectStatement.getEndKey())); } + /** + * 根据SelectStatement构建查询树的AddSequence操作符 + * + * @param selectStatement Select上下文 + * @param root 当前根节点 + * @return 添加了AddSequence操作符的根节点;如果没有Sequence,返回原根节点 + */ + private Operator buildAddSequence(UnarySelectStatement selectStatement, Operator root) { + List sequences = selectStatement.getSequenceExpressionList(); + if (!sequences.isEmpty()) { + List startList = new ArrayList<>(); + List incrementList = new ArrayList<>(); + List columns = new ArrayList<>(); + sequences.forEach( + sequence -> { + startList.add(sequence.getStart()); + incrementList.add(sequence.getIncrement()); + columns.add(sequence.getColumnName()); + }); + root = new AddSequence(new OperatorSource(root), startList, incrementList, columns); + } + return root; + } + /** * 根据SelectStatement构建查询树的Reorder操作符 * diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java index 9f4b36a91a..900ad3ef54 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java @@ -55,6 +55,7 @@ import cn.edu.tsinghua.iginx.engine.shared.function.system.Max; import cn.edu.tsinghua.iginx.engine.shared.function.system.Min; import cn.edu.tsinghua.iginx.engine.shared.operator.AddSchemaPrefix; +import cn.edu.tsinghua.iginx.engine.shared.operator.AddSequence; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; import cn.edu.tsinghua.iginx.engine.shared.operator.CrossJoin; import cn.edu.tsinghua.iginx.engine.shared.operator.Distinct; @@ -137,6 +138,8 @@ public RowStream executeUnaryOperator( return executeAddSchemaPrefix((AddSchemaPrefix) operator, table); case GroupBy: return executeGroupBy((GroupBy) operator, table); + case AddSequence: + return executeAddSequence((AddSequence) operator, table); case Distinct: return executeDistinct((Distinct) operator, table); case ValueToSelectedPath: @@ -417,22 +420,27 @@ private RowStream executeMappingTransform(MappingTransform mappingTransform, Tab return RowUtils.calMappingTransform(table, functionCallList); } - private RowStream executeRename(Rename rename, Table table) { + private RowStream executeRename(Rename rename, Table table) throws PhysicalException { Header header = table.getHeader(); List> aliasList = rename.getAliasList(); - Header newHeader = header.renamedHeader(aliasList, rename.getIgnorePatterns()); + Pair pair = header.renamedHeader(aliasList, rename.getIgnorePatterns()); + Header newHeader = pair.k; + int colIndex = pair.v; List rows = new ArrayList<>(); - table - .getRows() - .forEach( - row -> { - if (newHeader.hasKey()) { - rows.add(new Row(newHeader, row.getKey(), row.getValues())); - } else { - rows.add(new Row(newHeader, row.getValues())); - } - }); + if (colIndex == -1) { + table.getRows().forEach(row -> rows.add(new Row(newHeader, row.getKey(), row.getValues()))); + } else { + HashSet keySet = new HashSet<>(); + for (Row row : table.getRows()) { + Row newRow = RowUtils.transformColumnToKey(newHeader, row, colIndex); + if (keySet.contains(newRow.getKey())) { + throw new PhysicalTaskExecuteFailureException("duplicated key found: " + newRow.getKey()); + } + keySet.add(newRow.getKey()); + rows.add(newRow); + } + } return new Table(newHeader, rows); } @@ -481,6 +489,33 @@ private RowStream executeGroupBy(GroupBy groupBy, Table table) throws PhysicalEx return new Table(header, rows); } + private RowStream executeAddSequence(AddSequence addSequence, Table table) { + Header header = table.getHeader(); + List targetFields = new ArrayList<>(header.getFields()); + addSequence.getColumns().forEach(column -> targetFields.add(new Field(column, DataType.LONG))); + Header newHeader = new Header(header.getKey(), targetFields); + + List rows = new ArrayList<>(); + int oldSize = header.getFieldSize(); + int newSize = targetFields.size(); + int sequenceSize = newSize - oldSize; + List cur = new ArrayList<>(addSequence.getStartList()); + List increments = new ArrayList<>(addSequence.getIncrementList()); + table + .getRows() + .forEach( + row -> { + Object[] values = new Object[newSize]; + System.arraycopy(row.getValues(), 0, values, 0, oldSize); + for (int i = 0; i < sequenceSize; i++) { + values[oldSize + i] = cur.get(i); + cur.set(i, cur.get(i) + increments.get(i)); + } + rows.add(new Row(newHeader, row.getKey(), values)); + }); + return new Table(newHeader, rows); + } + private RowStream executeReorder(Reorder reorder, Table table) { Header header = table.getHeader(); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSequenceLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSequenceLazyStream.java new file mode 100644 index 0000000000..3af4069179 --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSequenceLazyStream.java @@ -0,0 +1,90 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; + +import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; +import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; +import cn.edu.tsinghua.iginx.engine.shared.operator.AddSequence; +import cn.edu.tsinghua.iginx.thrift.DataType; +import java.util.ArrayList; +import java.util.List; + +public class AddSequenceLazyStream extends UnaryLazyStream { + + private Header header; + + private final AddSequence addSequence; + + private final List cur; + + private final List increments; + + private final int oldSize; + + private final int newSize; + + private final int sequenceSize; + + public AddSequenceLazyStream(AddSequence addSequence, RowStream stream) throws PhysicalException { + super(stream); + this.addSequence = addSequence; + this.cur = new ArrayList<>(addSequence.getStartList()); + this.increments = new ArrayList<>(addSequence.getIncrementList()); + this.header = getHeader(); + this.oldSize = stream.getHeader().getFieldSize(); + this.newSize = header.getFieldSize(); + this.sequenceSize = newSize - oldSize; + } + + @Override + public Header getHeader() throws PhysicalException { + if (header == null) { + Header header = stream.getHeader(); + List targetFields = new ArrayList<>(stream.getHeader().getFields()); + addSequence + .getColumns() + .forEach(column -> targetFields.add(new Field(column, DataType.LONG))); + this.header = new Header(header.getKey(), targetFields); + } + return header; + } + + @Override + public boolean hasNext() throws PhysicalException { + return stream.hasNext(); + } + + @Override + public Row next() throws PhysicalException { + if (!hasNext()) { + throw new IllegalStateException("row stream doesn't have more data!"); + } + + Row row = stream.next(); + Object[] values = new Object[newSize]; + System.arraycopy(row.getValues(), 0, values, 0, oldSize); + for (int i = 0; i < sequenceSize; i++) { + values[oldSize + i] = cur.get(i); + cur.set(i, cur.get(i) + increments.get(i)); + } + return new Row(header, row.getKey(), values); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RenameLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RenameLazyStream.java index eddb89df0a..749012b0fa 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RenameLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RenameLazyStream.java @@ -19,10 +19,14 @@ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; +import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalTaskExecuteFailureException; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.RowUtils; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.operator.Rename; +import cn.edu.tsinghua.iginx.utils.Pair; +import java.util.HashSet; public class RenameLazyStream extends UnaryLazyStream { @@ -30,16 +34,24 @@ public class RenameLazyStream extends UnaryLazyStream { private Header header; + private int colIndex; + + private final HashSet keySet; + public RenameLazyStream(Rename rename, RowStream stream) { super(stream); this.rename = rename; + this.keySet = new HashSet<>(); } @Override public Header getHeader() throws PhysicalException { if (header == null) { Header header = stream.getHeader(); - this.header = header.renamedHeader(rename.getAliasList(), rename.getIgnorePatterns()); + Pair pair = + header.renamedHeader(rename.getAliasList(), rename.getIgnorePatterns()); + this.header = pair.k; + this.colIndex = pair.v; } return header; } @@ -56,10 +68,15 @@ public Row next() throws PhysicalException { } Row row = stream.next(); - if (header.hasKey()) { + if (colIndex == -1) { return new Row(header, row.getKey(), row.getValues()); } else { - return new Row(header, row.getValues()); + Row newRow = RowUtils.transformColumnToKey(header, row, colIndex); + if (keySet.contains(newRow.getKey())) { + throw new PhysicalTaskExecuteFailureException("duplicated key found: " + newRow.getKey()); + } + keySet.add(newRow.getKey()); + return newRow; } } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java index 1058513f85..6ef5c54896 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java @@ -35,6 +35,7 @@ import cn.edu.tsinghua.iginx.engine.shared.function.system.Max; import cn.edu.tsinghua.iginx.engine.shared.function.system.Min; import cn.edu.tsinghua.iginx.engine.shared.operator.AddSchemaPrefix; +import cn.edu.tsinghua.iginx.engine.shared.operator.AddSequence; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; import cn.edu.tsinghua.iginx.engine.shared.operator.CrossJoin; import cn.edu.tsinghua.iginx.engine.shared.operator.Distinct; @@ -119,6 +120,9 @@ public RowStream executeUnaryOperator( case Distinct: result = executeDistinct((Distinct) operator, stream); break; + case AddSequence: + result = executeAddSequence((AddSequence) operator, stream); + break; case ValueToSelectedPath: result = executeValueToSelectedPath((ValueToSelectedPath) operator, stream); break; @@ -274,6 +278,11 @@ private RowStream executeDistinct(Distinct distinct, RowStream stream) throws Ph return new DistinctLazyStream(stream); } + private RowStream executeAddSequence(AddSequence addSequence, RowStream stream) + throws PhysicalException { + return new AddSequenceLazyStream(addSequence, stream); + } + private RowStream executeValueToSelectedPath(ValueToSelectedPath operator, RowStream stream) { return new ValueToSelectedPathLazyStream(operator, stream); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java index 3253075070..ee2197e022 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java @@ -32,6 +32,7 @@ import cn.edu.tsinghua.iginx.engine.shared.function.system.utils.ValueUtils; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; import cn.edu.tsinghua.iginx.utils.DataTypeUtils; +import java.security.Key; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -60,6 +61,8 @@ public static Value calculateExpr(Row row, Expression expr) throws PhysicalExcep switch (expr.getType()) { case Constant: return calculateConstantExpr((ConstantExpression) expr); + case Key: + return calculateKeyExpr(row, (KeyExpression) expr); case Base: return calculateBaseExpr(row, (BaseExpression) expr); case Function: @@ -83,6 +86,13 @@ private static Value calculateConstantExpr(ConstantExpression constantExpr) { return new Value(constantExpr.getValue()); } + private static Value calculateKeyExpr(Row row, KeyExpression expr) throws PhysicalException { + if (!row.getHeader().hasKey()) { + throw new PhysicalTaskExecuteFailureException("there is no key in row"); + } + return new Value(row.getKey()); + } + private static Value calculateBaseExpr(Row row, BaseExpression baseExpr) { String colName = baseExpr.getColumnName(); int index = row.getHeader().indexOf(colName); @@ -386,6 +396,8 @@ public static List getPathFromExprList(List exprList, boolea } break; case Constant: + case Key: + case Sequence: case FromValue: break; default: @@ -405,6 +417,8 @@ public static List getPathFromExprList(List exprList, boolea public static Expression flattenExpression(Expression expr) { switch (expr.getType()) { case Constant: + case Key: + case Sequence: case Base: case Function: return expr; @@ -824,6 +838,15 @@ public static Expression copy(Expression expression) { : null; return new CaseWhenExpression( conditions, resultCopy, resultElse, caseWhenExpression.getColumnName()); + case Key: + KeyExpression keyExpression = (KeyExpression) expression; + return new KeyExpression(keyExpression.getColumnName()); + case Sequence: + SequenceExpression sequenceExpression = (SequenceExpression) expression; + return new SequenceExpression( + sequenceExpression.getStart(), + sequenceExpression.getIncrement(), + sequenceExpression.getColumnName()); default: throw new IllegalArgumentException( String.format("Unknown expr type: %s", expression.getType())); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java index c862e5a4c1..4a3419ae85 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java @@ -33,6 +33,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; +import cn.edu.tsinghua.iginx.engine.shared.expr.KeyExpression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; @@ -91,11 +92,22 @@ public static Row transform(Row row, Header targetHeader) { } public static Row combineMultipleColumns(List columnList) { + return combineMultipleColumns(columnList, true); + } + + public static Row combineMultipleColumns(List columnList, boolean remainKey) { if (columnList == null || columnList.isEmpty()) { return Row.EMPTY_ROW; } + + Row row = columnList.get(0); if (columnList.size() == 1) { - return columnList.get(0); + if (remainKey) { + return row; + } else { + Header headerNoKey = new Header(row.getHeader().getFields()); + return new Row(headerNoKey, row.getValues()); + } } List fields = new ArrayList<>(); @@ -104,9 +116,14 @@ public static Row combineMultipleColumns(List columnList) { fields.addAll(cols.getHeader().getFields()); valuesCombine.addAll(Arrays.asList(cols.getValues())); } - Header newHeader = - columnList.get(0).getHeader().hasKey() ? new Header(Field.KEY, fields) : new Header(fields); - return new Row(newHeader, columnList.get(0).getKey(), valuesCombine.toArray()); + + if (remainKey) { + Header newHeader = + row.getHeader().hasKey() ? new Header(Field.KEY, fields) : new Header(fields); + return new Row(newHeader, row.getKey(), valuesCombine.toArray()); + } else { + return new Row(new Header(fields), valuesCombine.toArray()); + } } public static boolean isEqualRow(Row row1, Row row2, boolean compareKey) @@ -1212,9 +1229,15 @@ public static Row calRowTransform(Row row, List functionCallList, Map, Row> rowTransformMap = new HashMap<>(); List columnList = new ArrayList<>(); + boolean remainKey = true; for (FunctionCall functionCall : functionCallList) { RowMappingFunction function = (RowMappingFunction) functionCall.getFunction(); FunctionParams params = functionCall.getParams(); + if (remainKey) { // 若有KeyExpression,则表示将key列降级为普通列,返回结果将没有key列 + remainKey = + params.getExpressions().stream() + .noneMatch(expression -> expression instanceof KeyExpression); + } Row tmp = row; if (functionCall.isNeedPreRowTransform()) { @@ -1244,7 +1267,7 @@ public static Row calRowTransform(Row row, List functionCallList, throw new PhysicalTaskExecuteFailureException( "encounter error when execute row mapping functions: " + functionCallList); } - return combineMultipleColumns(columnList); + return combineMultipleColumns(columnList, remainKey); } /** @@ -1370,4 +1393,16 @@ public static Row buildConstRow(List expressions) throws PhysicalExc Header header = new Header(fields); return new Row(header, values); } + + public static Row transformColumnToKey(Header header, Row row, int colIndex) { + long key = ValueUtils.transformToLong(row.getAsValue(colIndex)); + Object[] oldValues = row.getValues(); + Object[] newValues = new Object[header.getFieldSize()]; + System.arraycopy(oldValues, 0, newValues, 0, colIndex); + if (colIndex < oldValues.length - 1) { + System.arraycopy( + oldValues, colIndex + 1, newValues, colIndex, header.getFieldSize() - colIndex); + } + return new Row(header, key, newValues); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java index 44a07a114f..3945a58d24 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java @@ -19,6 +19,9 @@ import static cn.edu.tsinghua.iginx.engine.shared.Constants.RESERVED_COLS; +import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; +import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalTaskExecuteFailureException; +import cn.edu.tsinghua.iginx.engine.shared.Constants; import cn.edu.tsinghua.iginx.utils.Pair; import cn.edu.tsinghua.iginx.utils.StringUtils; import java.util.*; @@ -127,9 +130,19 @@ public boolean equals(Object o) { && Objects.equals(indexMap, header.indexMap); } - public Header renamedHeader(List> aliasList, List ignorePatterns) { + /** + * 根据Rename算子的aliasList和ignorePatterns计算重命名后的header和要升级成key列的普通列的下标 + * + * @param aliasList Rename算子参数 + * @param ignorePatterns Rename算子参数 + * @return pair.k表示重命名后的header;pair.v表示要升级成key列的普通列的下标,为-1时表示没有列需要升级成key列 + */ + public Pair renamedHeader( + List> aliasList, List ignorePatterns) throws PhysicalException { List newFields = new ArrayList<>(); int size = getFieldSize(); + int colIndex = -1; + scanFields: for (int i = 0; i < size; i++) { Field field = fields.get(i); // 如果列名在ignorePatterns中,对该列不执行rename @@ -159,6 +172,14 @@ public Header renamedHeader(List> aliasList, List i } break; } else if (oldPattern.equals(field.getName())) { + if (newPattern.equals(Constants.KEY)) { + if (colIndex != -1) { + throw new PhysicalTaskExecuteFailureException( + "only one column can transform to key in each select"); + } + colIndex = i; + continue scanFields; + } alias = newPattern; Set> tagSet = new HashSet<>(); Field nextField = i < size - 1 ? fields.get(i + 1) : null; @@ -193,7 +214,14 @@ public Header renamedHeader(List> aliasList, List i newFields.add(new Field(alias, field.getType(), field.getTags())); } } - return new Header(getKey(), newFields); + + Header newHeader; + if (!hasKey() && colIndex != -1) { + newHeader = new Header(Field.KEY, newFields); + } else { + newHeader = new Header(getKey(), newFields); + } + return new Pair<>(newHeader, colIndex); } public static class ReorderedHeaderWrapped { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Row.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Row.java index 77a33bcc2c..d1e5a5fc29 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Row.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Row.java @@ -26,7 +26,7 @@ public class Row { - public static final long NON_EXISTED_KEY = -1L; + public static final long NON_EXISTED_KEY = Long.MIN_VALUE; public static final Row EMPTY_ROW = new Row(Header.EMPTY_HEADER, new Object[0]); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java index f3e111c29a..1569edf8ab 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java @@ -42,5 +42,7 @@ enum ExpressionType { FromValue, Multiple, CaseWhen, + Key, + Sequence, } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ExpressionVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ExpressionVisitor.java index 3e6cb7cc7e..988f26ed13 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ExpressionVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ExpressionVisitor.java @@ -37,4 +37,8 @@ public interface ExpressionVisitor { void visit(UnaryExpression expression); void visit(CaseWhenExpression expression); + + void visit(KeyExpression expression); + + void visit(SequenceExpression expression); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java new file mode 100644 index 0000000000..474fd4f801 --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java @@ -0,0 +1,61 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.engine.shared.expr; + +public class KeyExpression implements Expression { + + public static String KEY_PREFIX = "&key@"; + + private final String columnName; + + private String alias; + + public KeyExpression(String columnName) { + this.columnName = columnName; + } + + @Override + public String getColumnName() { + return columnName; + } + + @Override + public ExpressionType getType() { + return ExpressionType.Key; + } + + @Override + public boolean hasAlias() { + return alias != null && !alias.isEmpty(); + } + + @Override + public String getAlias() { + return alias; + } + + @Override + public void setAlias(String alias) { + this.alias = alias; + } + + @Override + public void accept(ExpressionVisitor visitor) { + visitor.visit(this); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java new file mode 100644 index 0000000000..50fa39e62d --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java @@ -0,0 +1,79 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.engine.shared.expr; + +public class SequenceExpression implements Expression { + + public static String SEQUENCE_PREFIX = "&sequence"; + + private final long start; + + private final long increment; + + private final String columnName; + + private String alias; + + public SequenceExpression(final String columnName) { + this(0, 1, columnName); + } + + public SequenceExpression(final long start, final long increment, final String columnName) { + this.start = start; + this.increment = increment; + this.columnName = columnName; + } + + public long getStart() { + return start; + } + + public long getIncrement() { + return increment; + } + + @Override + public String getColumnName() { + return columnName; + } + + @Override + public ExpressionType getType() { + return ExpressionType.Sequence; + } + + @Override + public boolean hasAlias() { + return alias != null && !alias.isEmpty(); + } + + @Override + public String getAlias() { + return alias; + } + + @Override + public void setAlias(String alias) { + this.alias = alias; + } + + @Override + public void accept(ExpressionVisitor visitor) { + visitor.visit(this); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java index ad285cdfcd..72a156eac0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java @@ -21,6 +21,7 @@ import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.shared.data.Value; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; +import cn.edu.tsinghua.iginx.exception.IginxRuntimeException; import cn.edu.tsinghua.iginx.thrift.DataType; import java.math.BigDecimal; import java.util.Arrays; @@ -72,6 +73,50 @@ public static Value transformToDouble(Value value) { return new Value(DataType.DOUBLE, dVal); } + public static long transformToLong(Value value) { + DataType dataType = value.getDataType(); + long longV; + switch (dataType) { + case INTEGER: + longV = value.getIntV().longValue(); + break; + case LONG: + longV = value.getLongV(); + break; + case BOOLEAN: + longV = value.getBoolV() ? 1L : 0L; + break; + case DOUBLE: + double doubleV = value.getDoubleV(); + if (doubleV > Long.MAX_VALUE) { + throw new IginxRuntimeException( + "Overflow: double value " + doubleV + " is too large for long."); + } else if (doubleV < Long.MIN_VALUE) { + throw new IginxRuntimeException( + "Overflow: double value " + doubleV + " is too small for long."); + } + longV = Math.round(value.getDoubleV()); + break; + case FLOAT: + float floatV = value.getFloatV(); + if (floatV > Long.MAX_VALUE) { + throw new IginxRuntimeException( + "Overflow: float value " + floatV + " is too large for long."); + } else if (floatV < Long.MIN_VALUE) { + throw new IginxRuntimeException( + "Overflow: float value " + floatV + " is too small for long."); + } + longV = Math.round(floatV); + break; + case BINARY: + longV = Long.parseLong(value.getBinaryVAsString()); + break; + default: + throw new IllegalArgumentException("Unexpected dataType: " + dataType); + } + return longV; + } + public static int compare(Value v1, Value v2) throws PhysicalException { DataType dataType1 = v1.getDataType(); DataType dataType2 = v2.getDataType(); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSequence.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSequence.java new file mode 100644 index 0000000000..1f2e915757 --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSequence.java @@ -0,0 +1,96 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.engine.shared.operator; + +import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; +import cn.edu.tsinghua.iginx.engine.shared.source.Source; +import java.util.ArrayList; +import java.util.List; + +public class AddSequence extends AbstractUnaryOperator { + + private final List startList; // 序列起始值 + + private final List incrementList; // 序列增值 + + private final List columns; // 生成序列后的列名 + + public AddSequence( + Source source, List startList, List incrementList, List columns) { + super(OperatorType.AddSequence, source); + this.startList = startList; + this.incrementList = incrementList; + this.columns = columns; + } + + public List getStartList() { + return startList; + } + + public List getIncrementList() { + return incrementList; + } + + public List getColumns() { + return columns; + } + + @Override + public Operator copy() { + return new AddSequence( + getSource().copy(), + new ArrayList<>(startList), + new ArrayList<>(incrementList), + new ArrayList<>(columns)); + } + + @Override + public UnaryOperator copyWithSource(Source source) { + return new AddSequence( + getSource(), + new ArrayList<>(startList), + new ArrayList<>(incrementList), + new ArrayList<>(columns)); + } + + @Override + public String getInfo() { + StringBuilder sb = new StringBuilder("AddSequence(start, increment, name): "); + for (int i = 0; i < startList.size(); i++) { + sb.append("(").append(startList.get(i)).append(", "); + sb.append(incrementList.get(i)).append(", "); + sb.append(columns.get(i)).append("), "); + } + sb.setLength(sb.length() - 2); + return sb.toString(); + } + + @Override + public boolean equals(Object object) { + if (this == object) { + return true; + } + if (object == null || getClass() != object.getClass()) { + return false; + } + AddSequence that = (AddSequence) object; + return startList.equals(that.incrementList) + && incrementList.equals(that.startList) + && columns.equals(that.columns); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java index c697f3e2e3..990c88de32 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java @@ -63,6 +63,7 @@ public enum OperatorType { AddSchemaPrefix, GroupBy, Distinct, + AddSequence, ProjectWaitingForPath, ValueToSelectedPath; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index 2b9b63bd73..0093d529b9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -22,11 +22,14 @@ import static cn.edu.tsinghua.iginx.constant.GlobalConstant.KEY_MIN_VAL; import static cn.edu.tsinghua.iginx.engine.shared.operator.MarkJoin.MARK_PREFIX; import static cn.edu.tsinghua.iginx.sql.statement.select.SelectStatement.caseWhenCount; +import static cn.edu.tsinghua.iginx.sql.statement.select.SelectStatement.keyCount; import static cn.edu.tsinghua.iginx.sql.statement.select.SelectStatement.markJoinCount; +import static cn.edu.tsinghua.iginx.sql.statement.select.SelectStatement.sequenceCount; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; +import cn.edu.tsinghua.iginx.engine.shared.Constants; import cn.edu.tsinghua.iginx.engine.shared.KeyRange; import cn.edu.tsinghua.iginx.engine.shared.data.Value; import cn.edu.tsinghua.iginx.engine.shared.data.write.RawDataType; @@ -38,7 +41,9 @@ import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.expr.FromValueExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.KeyExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.Operator; +import cn.edu.tsinghua.iginx.engine.shared.expr.SequenceExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.UnaryExpression; import cn.edu.tsinghua.iginx.engine.shared.file.CSVFile; import cn.edu.tsinghua.iginx.engine.shared.file.read.ImportCsv; @@ -111,6 +116,7 @@ import cn.edu.tsinghua.iginx.sql.SqlParser.SelectContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SelectStatementContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SelectSublistContext; +import cn.edu.tsinghua.iginx.sql.SqlParser.SequenceContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SetConfigStatementContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SetRulesStatementContext; import cn.edu.tsinghua.iginx.sql.SqlParser.ShowClusterInfoStatementContext; @@ -932,18 +938,58 @@ private void parseSelectPaths(SelectClauseContext ctx, UnarySelectStatement sele selectStatement.setDistinct(true); } - List selectList = ctx.selectSublist(); + int asKeyCnt = 0; + for (SelectSublistContext select : ctx.selectSublist()) { + List ret; + if (select.expression() != null) { + ret = parseExpression(select.expression(), selectStatement); + if (select.expression().subquery() != null + && (select.asClause() != null || select.asKeyClause() != null)) { + throw new SQLParserException("Select Subquery doesn't support AS clause."); + } + } else if (select.sequence() != null) { + ret = parseSequence(select.sequence()); + } else if (select.KEY() != null) { + String keyName = KeyExpression.KEY_PREFIX + keyCount; + keyCount++; + ret = Collections.singletonList(new KeyExpression(keyName)); + } else { + throw new SQLParserException("Unknown selected item: " + select.getText()); + } + if (ret.size() == 1) { + if (select.asClause() != null) { + ret.get(0).setAlias(select.asClause().ID().getText()); + } else if (select.asKeyClause() != null) { + ret.get(0).setAlias(Constants.KEY); + asKeyCnt++; + } + } + ret.forEach(selectStatement::addSelectClauseExpression); + } + if (asKeyCnt > 1) { + throw new SQLParserException("Only one 'AS KEY' can be used in each select at most."); + } + } - for (SelectSublistContext select : selectList) { - List ret = parseExpression(select.expression(), selectStatement); - if (select.expression().subquery() != null && select.asClause() != null) { - throw new SQLParserException("Select Subquery doesn't support AS clause."); + private List parseSequence(SequenceContext ctx) { + long start = 0; + long increment = 1; + if (ctx.start != null) { + Object startObject = parseValue(ctx.start); + if (!(startObject instanceof Long)) { + throw new SQLParserException("The value of start in sequence should be a long."); } - if (ret.size() == 1 && select.asClause() != null) { - ret.get(0).setAlias(select.asClause().ID().getText()); + start = (Long) startObject; + Object incrementObject = parseValue(ctx.increment); + if (!(incrementObject instanceof Long)) { + throw new SQLParserException("The value of increment in sequence should be a long."); } - ret.forEach(selectStatement::addSelectClauseExpression); + increment = (Long) incrementObject; } + String sequenceName = + SequenceExpression.SEQUENCE_PREFIX + "(" + start + ", " + increment + ")@" + sequenceCount; + sequenceCount++; + return Collections.singletonList(new SequenceExpression(start, increment, sequenceName)); } private void parseSelectPathsWithValue2Meta( diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java index 8527fe67bf..dd51161795 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java @@ -33,6 +33,8 @@ public abstract class SelectStatement extends DataStatement { public static int markJoinCount = 0; public static int caseWhenCount = 0; + public static int keyCount = 0; + public static int sequenceCount = 0; protected SelectStatementType selectStatementType; protected boolean needLogicalExplain = false; protected boolean needPhysicalExplain = false; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java index 17b4fceaee..5b60d4ee03 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java @@ -249,6 +249,10 @@ public List getBaseExpressionList(boolean exceptFunc) { return baseExpressionList; } + public List getSequenceExpressionList() { + return selectClause.getSequenceExpressionList(); + } + @Override public Set getPathSet() { Set pathSet = new HashSet<>(); @@ -455,7 +459,8 @@ public boolean needRowTransform() { return true; } } else if (!expression.getType().equals(Expression.ExpressionType.Base) - && !expression.getType().equals(Expression.ExpressionType.FromValue)) { + && !expression.getType().equals(Expression.ExpressionType.FromValue) + && !expression.getType().equals(Expression.ExpressionType.Sequence)) { return true; } } @@ -631,7 +636,10 @@ public void checkQueryType() { throw new SQLParserException( "Statement without FROM clause should only contain constant arithmetic expressions."); } - if (isAllConstArith) { + + boolean isAllExprNeedNoPath = + getExpressions().stream().allMatch(UnarySelectStatement::isNeedNoPath); + if (isAllExprNeedNoPath) { fromClause .getFromParts() .forEach( @@ -694,6 +702,13 @@ public void checkQueryType() { } } + private static boolean isNeedNoPath(Expression expression) { + if (expression instanceof KeyExpression || expression instanceof SequenceExpression) { + return true; + } + return ExpressionUtils.isConstantArithmeticExpr(expression); + } + /** * 判断Expression的FuncExpression的映射类型 * @@ -703,9 +718,11 @@ public void checkQueryType() { private MappingType getExprMappingType(Expression expression) { switch (expression.getType()) { case Constant: + case Sequence: case FromValue: return null; case Base: + case Key: case CaseWhen: return MappingType.RowMapping; // case-when视为RowMapping函数 case Unary: diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java index b40878382c..a19eb651a1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java @@ -23,6 +23,7 @@ import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.MultipleExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.SequenceExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.UnaryExpression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; @@ -131,6 +132,8 @@ private List getTargetTypeFuncExprList(MappingType mappingType, break; case Base: case Constant: + case Key: + case Sequence: case FromValue: case CaseWhen: break; @@ -140,6 +143,16 @@ private List getTargetTypeFuncExprList(MappingType mappingType, return ret; } + public List getSequenceExpressionList() { + List ret = new ArrayList<>(); + for (Expression expression : expressions) { + if (expression instanceof SequenceExpression) { + ret.add((SequenceExpression) expression); + } + } + return ret; + } + public void addExpression(Expression expression) { expressions.add(expression); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java index dbd44390ae..0d01fac51c 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java @@ -158,6 +158,10 @@ private void collectColumns( } else if (operator.getType() == OperatorType.MappingTransform) { MappingTransform mappingTransform = (MappingTransform) operator; functionCallList = mappingTransform.getFunctionCallList(); + } else if (operator.getType() == OperatorType.AddSequence) { + // 移除自增列算子中添加的列 + AddSequence addSequence = (AddSequence) operator; + addSequence.getColumns().forEach(columns::remove); } if (newColumnList != null) { diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java index eb27355934..baf1e6f60c 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java @@ -128,6 +128,12 @@ public void visit(UnaryExpression expression) {} @Override public void visit(CaseWhenExpression expression) {} + + @Override + public void visit(KeyExpression expression) {} + + @Override + public void visit(SequenceExpression expression) {} }); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java index a109f7d259..85b0398536 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java @@ -130,6 +130,12 @@ public void visit(UnaryExpression expression) {} @Override public void visit(CaseWhenExpression expression) {} + + @Override + public void visit(KeyExpression expression) {} + + @Override + public void visit(SequenceExpression expression) {} }); } } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java index fd21db07f1..a5768b65f7 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java @@ -190,6 +190,12 @@ public void visit(MultipleExpression expression) {} @Override public void visit(CaseWhenExpression expression) {} + + @Override + public void visit(KeyExpression expression) {} + + @Override + public void visit(SequenceExpression expression) {} }); return hasFunction[0]; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java index 3f009cb932..3a0f8b0e99 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java @@ -261,7 +261,7 @@ private List> cacheResult( } List rowData = values.get(i); - boolean isNull = true; // TODO 该行除系统级时间序列之外全部为空 + boolean isNull = !rowData.isEmpty(); for (int j = 0; j < rowData.size(); j++) { if (j == annotationPathIndex) { continue; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 8b230a0a98..7bff1fb74e 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -6317,13 +6317,20 @@ public void testErrorClause() { errClause = "select * from test.a join test.b where a > 0;"; executor.executeAndCompareErrMsg(errClause, "Unexpected paths' name: [a]."); - errClause = "SELECT 1 * 2 FROM test;"; - executor.executeAndCompareErrMsg( - errClause, "SELECT constant arithmetic expression isn't supported yet."); - errClause = "select * from (show columns a.*), (show columns b.*);"; executor.executeAndCompareErrMsg( errClause, "As clause is expected when multiple ShowColumns are joined together."); + + errClause = "select sequence(\"a\", 1) from us.d1;"; + executor.executeAndCompareErrMsg(errClause, "The value of start in sequence should be a long."); + + errClause = "select sequence(1, 1.5) from us.d1;"; + executor.executeAndCompareErrMsg( + errClause, "The value of increment in sequence should be a long."); + + errClause = "select s1 as key, s2 as key from us.d1;"; + executor.executeAndCompareErrMsg( + errClause, "Only one 'AS KEY' can be used in each select at most."); } @Test @@ -8659,4 +8666,152 @@ public void testConstantExpression() { + "Total line number = 6\n"; executor.executeAndCompare(statement, expected); } + + @Test + public void testSequence() { + String insert = "insert into test.a(key, a, b) values (1, 1, 1.1), (2, 3, 3.1);"; + executor.execute(insert); + insert = "insert into test.b(key, a, b) values (1, 2, 2.1), (2, 3, 3.1), (3, 4, 4.1);"; + executor.execute(insert); + + String statement = "select sequence() as s1, sequence(-20, 30) as s2 from test.a;"; + String expected = + "ResultSets:\n" + + "+---+--+---+\n" + + "|key|s1| s2|\n" + + "+---+--+---+\n" + + "| 1| 0|-20|\n" + + "| 2| 1| 10|\n" + + "+---+--+---+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + statement = "select sequence() as key, sequence(10, 100) as s, b from test.b;"; + expected = + "ResultSets:\n" + + "+---+---+--------+\n" + + "|key| s|test.b.b|\n" + + "+---+---+--------+\n" + + "| 0| 10| 2.1|\n" + + "| 1|110| 3.1|\n" + + "| 2|210| 4.1|\n" + + "+---+---+--------+\n" + + "Total line number = 3\n"; + executor.executeAndCompare(statement, expected); + + statement = "select sequence() as key, test.a.b, test.b.b from test.a, test.b;"; + expected = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|test.a.b|test.b.b|\n" + + "+---+--------+--------+\n" + + "| 0| 1.1| 2.1|\n" + + "| 1| 1.1| 3.1|\n" + + "| 2| 1.1| 4.1|\n" + + "| 3| 3.1| 2.1|\n" + + "| 4| 3.1| 3.1|\n" + + "| 5| 3.1| 4.1|\n" + + "+---+--------+--------+\n" + + "Total line number = 6\n"; + executor.executeAndCompare(statement, expected); + + statement = + "select sequence() as key, test.a.b, sum(test.b.b) from (select test.a.b, test.b.b from test.a, test.b) group by test.a.b;"; + expected = + "ResultSets:\n" + + "+---+--------+-------------+\n" + + "|key|test.a.b|sum(test.b.b)|\n" + + "+---+--------+-------------+\n" + + "| 0| 3.1| 9.3|\n" + + "| 1| 1.1| 9.3|\n" + + "+---+--------+-------------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + statement = + "select sequence(1, 2) as key, test.a.b, sum(test.b.b) from (select test.a.b, test.b.b from test.a, test.b) group by test.a.b order by test.a.b;"; + expected = + "ResultSets:\n" + + "+---+--------+-------------+\n" + + "|key|test.a.b|sum(test.b.b)|\n" + + "+---+--------+-------------+\n" + + "| 1| 1.1| 9.3|\n" + + "| 3| 3.1| 9.3|\n" + + "+---+--------+-------------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + } + + @Test + public void testTransformKeyColumn() { + String insert = + "insert into test(key, a, b, c, d) values (0, 1, 1.1, true, \"2\"), (1, 3, 3.1, false, \"3\"), (2, 3, 3.1, false, \"3\");"; + executor.execute(insert); + + String statement = "select key as key from test;"; + String expected = + "ResultSets:\n" + + "+---+\n" + + "|key|\n" + + "+---+\n" + + "| 0|\n" + + "| 1|\n" + + "| 2|\n" + + "+---+\n" + + "Total line number = 3\n"; + executor.executeAndCompare(statement, expected); + + statement = "select a, b, key as eee from test;"; + expected = + "ResultSets:\n" + + "+------+------+---+\n" + + "|test.a|test.b|eee|\n" + + "+------+------+---+\n" + + "| 1| 1.1| 0|\n" + + "| 3| 3.1| 1|\n" + + "| 3| 3.1| 2|\n" + + "+------+------+---+\n" + + "Total line number = 3\n"; + executor.executeAndCompare(statement, expected); + + statement = "select a, b, key as eee, key as key from test;"; + expected = + "ResultSets:\n" + + "+---+------+------+---+\n" + + "|key|test.a|test.b|eee|\n" + + "+---+------+------+---+\n" + + "| 0| 1| 1.1| 0|\n" + + "| 1| 3| 3.1| 1|\n" + + "| 2| 3| 3.1| 2|\n" + + "+---+------+------+---+\n" + + "Total line number = 3\n"; + executor.executeAndCompare(statement, expected); + + statement = "select d as key, a from test where key < 2;"; + expected = + "ResultSets:\n" + + "+---+------+\n" + + "|key|test.a|\n" + + "+---+------+\n" + + "| 2| 1|\n" + + "| 3| 3|\n" + + "+---+------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + String errClause = "select d as key, a from test;"; + executor.executeAndCompareErrMsg(errClause, "duplicated key found: 3"); + + statement = "select c as key, a from test where key < 2;"; + expected = + "ResultSets:\n" + + "+---+------+\n" + + "|key|test.a|\n" + + "+---+------+\n" + + "| 1| 1|\n" + + "| 0| 3|\n" + + "+---+------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + } } From 56e29d0339fe789a5398963d5b1c3dbbc588a59f Mon Sep 17 00:00:00 2001 From: An Qi Date: Sat, 12 Oct 2024 16:17:27 +0800 Subject: [PATCH 10/33] chore: merge 0.7.2 (#460) * feat(shared): retry connect * feat(jdbc): new prefix `jdbc:iginx:tsdb:` --------- Co-authored-by: Yuqing Zhu --- jdbc/pom.xml | 33 + .../iginx/jdbc/tsdb/IginxConnection.java | 398 +++++++ .../tsinghua/iginx/jdbc/tsdb/IginxDriver.java | 85 ++ .../jdbc/tsdb/IginxPreparedStatement.java | 402 +++++++ .../iginx/jdbc/tsdb/IginxResultMetadata.java | 158 +++ .../iginx/jdbc/tsdb/IginxResultSet.java | 1009 +++++++++++++++++ .../iginx/jdbc/tsdb/IginxStatement.java | 324 ++++++ .../iginx/jdbc/tsdb/util/AuthorityInfo.java | 75 ++ .../META-INF/services/java.sql.Driver | 2 + jdbc/src/test/java/TSDBClientIT.java | 152 +++ .../tsinghua/iginx/utils/ThriftConnPool.java | 33 +- 11 files changed, 2663 insertions(+), 8 deletions(-) create mode 100644 jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxConnection.java create mode 100644 jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxDriver.java create mode 100644 jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxPreparedStatement.java create mode 100644 jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultMetadata.java create mode 100644 jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultSet.java create mode 100644 jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxStatement.java create mode 100644 jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/util/AuthorityInfo.java create mode 100644 jdbc/src/main/resources/META-INF/services/java.sql.Driver create mode 100644 jdbc/src/test/java/TSDBClientIT.java diff --git a/jdbc/pom.xml b/jdbc/pom.xml index 63b65b6269..6c8776db88 100644 --- a/jdbc/pom.xml +++ b/jdbc/pom.xml @@ -45,4 +45,37 @@ provided + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + true + true + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + shade + + package + + + + + + diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxConnection.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxConnection.java new file mode 100644 index 0000000000..f8af9f9930 --- /dev/null +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxConnection.java @@ -0,0 +1,398 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.jdbc.tsdb; + +import cn.edu.tsinghua.iginx.exception.SessionException; +import cn.edu.tsinghua.iginx.jdbc.tsdb.util.AuthorityInfo; +import cn.edu.tsinghua.iginx.pool.SessionPool; +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.sql.*; +import java.util.*; +import java.util.concurrent.Executor; +import java.util.logging.Logger; +import java.util.stream.Collectors; + +public class IginxConnection implements Connection { + + private static final Logger LOGGER = Logger.getLogger(IginxConnection.class.getName()); + + private static final String IGINX_AUTHORITIES_PROPERTY = "iginx.authorities"; + private static final String DEFAULT_IGINX_AUTHORITIES = ""; + + private final SessionPool sessionPool; + + private boolean isClosed; + + public IginxConnection(String url, Properties info) throws SQLException { + String rawAuthorities = info.getProperty(IGINX_AUTHORITIES_PROPERTY, DEFAULT_IGINX_AUTHORITIES); + + List authorities = + Arrays.stream(rawAuthorities.split("#")) + .map(AuthorityInfo::parse) + .collect(Collectors.toList()); + if (authorities.isEmpty()) { + throw new SQLException("No authority is provided"); + } + + HashSet localIPSet = new HashSet<>(getLocalIps()); + List localAuthorities = + authorities.stream() + .filter(authorityInfo -> localIPSet.contains(authorityInfo.getHost())) + .collect(Collectors.toList()); + + AuthorityInfo host = randomSelectServer(localAuthorities, authorities); + + this.sessionPool = + new SessionPool( + host.getHost(), host.getPort().toString(), host.getUser(), host.getPassword()); + this.isClosed = false; + } + + private static AuthorityInfo randomSelectServer( + List localServers, List serversInfo) { + Random random = new Random(0); + AuthorityInfo server; + if (localServers.isEmpty()) { + LOGGER.info("No IGinX server is in the same node with the client, select a random server"); + server = serversInfo.get(random.nextInt(serversInfo.size())); + } else { + LOGGER.info("Select a random server from the servers in the same node with the client"); + server = localServers.get(random.nextInt(localServers.size())); + } + return server; + } + + public List getLocalIps() throws SQLException { + List ips = new ArrayList<>(); + try { + Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); + InetAddress ip; + while (networkInterfaces.hasMoreElements()) { + NetworkInterface networkInterface = networkInterfaces.nextElement(); + Enumeration addresses = networkInterface.getInetAddresses(); + while (addresses.hasMoreElements()) { + ip = addresses.nextElement(); + if (ip instanceof Inet4Address) { + ips.add(ip.getHostAddress()); + } + } + } + } catch (SocketException e) { + throw new SQLException("Failed to get local IPs", e); + } + return ips; + } + + @Override + public Statement createStatement() throws SQLException { + return new IginxStatement(this); + } + + @Override + public PreparedStatement prepareStatement(String sql) throws SQLException { + if (sql.equals(IginxPreparedStatement.INSERT_SQL)) { + return new IginxPreparedStatement(this, sql); + } + throw new SQLException("Unsupported sql: " + sql); + } + + public SessionPool getSessionPool() { + return sessionPool; + } + + @Override + public void close() throws SQLException { + if (isClosed()) { + return; + } + + try { + sessionPool.close(); + } catch (SessionException e) { + throw new SQLException("Fail to close Statement", e); + } finally { + this.isClosed = true; + } + } + + @Override + public boolean isClosed() { + return isClosed; + } + + @Override + public Statement createStatement(int resultSetType, int resultSetConcurrency) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public DatabaseMetaData getMetaData() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public SQLWarning getWarnings() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void clearWarnings() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isValid(int timeout) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getNetworkTimeout() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean getAutoCommit() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setAutoCommit(boolean autoCommit) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void commit() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String nativeSQL(String sql) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isReadOnly() { + return true; + } + + @Override + public void setReadOnly(boolean readOnly) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getCatalog() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setCatalog(String catalog) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getTransactionIsolation() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setTransactionIsolation(int level) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public CallableStatement prepareCall(String sql) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Map> getTypeMap() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setTypeMap(Map> map) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getHoldability() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setHoldability(int holdability) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Savepoint setSavepoint() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Savepoint setSavepoint(String name) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void rollback() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void rollback(Savepoint savepoint) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void releaseSavepoint(Savepoint savepoint) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Statement createStatement( + int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public PreparedStatement prepareStatement( + String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public CallableStatement prepareCall( + String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Clob createClob() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Blob createBlob() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public NClob createNClob() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public SQLXML createSQLXML() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setClientInfo(String name, String value) throws SQLClientInfoException { + throw new SQLClientInfoException(); + } + + @Override + public String getClientInfo(String name) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Properties getClientInfo() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setClientInfo(Properties properties) throws SQLClientInfoException { + throw new SQLClientInfoException(); + } + + @Override + public Array createArrayOf(String typeName, Object[] elements) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Struct createStruct(String typeName, Object[] attributes) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getSchema() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setSchema(String schema) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void abort(Executor executor) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T unwrap(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } +} diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxDriver.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxDriver.java new file mode 100644 index 0000000000..9ddcd143bd --- /dev/null +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxDriver.java @@ -0,0 +1,85 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.jdbc.tsdb; + +import java.sql.*; +import java.util.Properties; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class IginxDriver implements Driver { + + private static final Logger LOGGER = Logger.getLogger(IginxDriver.class.getName()); + + public static final String IGINX_URL_PREFIX = "jdbc:iginx:tsdb:"; + + static { + try { + DriverManager.registerDriver(new IginxDriver(0, 6)); + } catch (SQLException e) { + LOGGER.log(Level.SEVERE, "Failed to register IginxDriver", e); + } + } + + private final int majorVersion; + private final int minorVersion; + + public IginxDriver() { + this(0, 6); + } + + private IginxDriver(int majorVersion, int minorVersion) { + this.majorVersion = majorVersion; + this.minorVersion = minorVersion; + } + + @Override + public Connection connect(String url, Properties info) throws SQLException { + return new IginxConnection(url, info); + } + + @Override + public boolean acceptsURL(String url) { + return url.startsWith(IGINX_URL_PREFIX); + } + + @Override + public int getMajorVersion() { + return majorVersion; + } + + @Override + public int getMinorVersion() { + return minorVersion; + } + + @Override + public boolean jdbcCompliant() { + return false; + } + + @Override + public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { + throw new SQLFeatureNotSupportedException("getPropertyInfo"); + } + + @Override + public Logger getParentLogger() throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException("getParentLogger"); + } +} diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxPreparedStatement.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxPreparedStatement.java new file mode 100644 index 0000000000..e6fc40b8f1 --- /dev/null +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxPreparedStatement.java @@ -0,0 +1,402 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.jdbc.tsdb; + +import static cn.edu.tsinghua.iginx.thrift.DataType.BINARY; + +import cn.edu.tsinghua.iginx.exception.SessionException; +import cn.edu.tsinghua.iginx.thrift.DataType; +import java.io.InputStream; +import java.io.Reader; +import java.math.BigDecimal; +import java.net.URL; +import java.sql.*; +import java.sql.Date; +import java.util.*; +import java.util.stream.Collectors; + +public class IginxPreparedStatement extends IginxStatement implements PreparedStatement { + + public static final String INSERT_SQL = + "insert into sensor(device_id,time,field0) values (?,?,?)"; + + public IginxPreparedStatement(IginxConnection connection, String sql) throws SQLException { + super(connection); + if (!sql.equals(INSERT_SQL)) { + throw new SQLFeatureNotSupportedException("sql must be: " + INSERT_SQL); + } + } + + private String path; + private long key; + private byte[] value; + + @Override + public void setLong(int index, long value) throws SQLException { + if (index != 2) { + throw new SQLFeatureNotSupportedException("index must be 2"); + } + this.key = value; + } + + @Override + public void setString(int index, String value) throws SQLException { + if (index == 1) { + this.path = value.replace(":", "."); + } else if (index == 3) { + this.value = value.getBytes(); + } else { + throw new SQLFeatureNotSupportedException("index must be 1 or 3"); + } + } + + private final Map> cacheData = new HashMap<>(); + + @Override + public void addBatch() { + cacheData.computeIfAbsent(key, k -> new HashMap<>()).put(path, value); + } + + @Override + public int[] executeBatch() throws SQLException { + try { + insertRecords(cacheData); + cacheData.clear(); + } catch (SessionException e) { + throw new SQLException(e); + } + return null; + } + + private void insertRecords(Map> cacheData) throws SessionException { + List prefixList = + cacheData.values().stream() + .map(Map::keySet) + .flatMap(Collection::stream) + .distinct() + .collect(Collectors.toList()); + List paths = new ArrayList<>(); + List dataTypeList = new ArrayList<>(); + long[] timestamps = new long[cacheData.size()]; + Map valuesMap = new LinkedHashMap<>(); + for (String prefix : prefixList) { + paths.add(prefix + ".field0"); + dataTypeList.add(BINARY); + valuesMap.put(prefix, new Object[timestamps.length]); + } + int index = 0; + for (Map.Entry> entry : cacheData.entrySet()) { + timestamps[index] = entry.getKey(); + Map fieldMap = entry.getValue(); + for (Map.Entry e : fieldMap.entrySet()) { + valuesMap.get(e.getKey())[index] = e.getValue(); + } + index++; + } + Object[] valuesList = new Object[paths.size()]; + int i = 0; + for (Object values : valuesMap.values()) { + valuesList[i] = values; + i++; + } + connection + .getSessionPool() + .insertColumnRecords(paths, timestamps, valuesList, dataTypeList, null); + } + + @Override + public ResultSet executeQuery() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int executeUpdate() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean execute() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void clearParameters() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public ParameterMetaData getParameterMetaData() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public ResultSetMetaData getMetaData() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBoolean(int parameterIndex, boolean x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setInt(int parameterIndex, int x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setFloat(int parameterIndex, float x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setDouble(int parameterIndex, double x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setObject(int parameterIndex, Object x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setShort(int parameterIndex, short x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNull(int parameterIndex, int sqlType) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setByte(int parameterIndex, byte x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBytes(int parameterIndex, byte[] x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setDate(int parameterIndex, Date x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setTime(int parameterIndex, Time x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader, int length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setRef(int parameterIndex, Ref x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBlob(int parameterIndex, Blob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setClob(int parameterIndex, Clob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setArray(int parameterIndex, Array x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setURL(int parameterIndex, URL x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setRowId(int parameterIndex, RowId x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNString(int parameterIndex, String value) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNCharacterStream(int parameterIndex, Reader value, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNClob(int parameterIndex, NClob value) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setClob(int parameterIndex, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBlob(int parameterIndex, InputStream inputStream, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setClob(int parameterIndex, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setNClob(int parameterIndex, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setObject(int parameterIndex, Object x, SQLType targetSqlType) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public long executeLargeUpdate() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } +} diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultMetadata.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultMetadata.java new file mode 100644 index 0000000000..12d024d19a --- /dev/null +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultMetadata.java @@ -0,0 +1,158 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.jdbc.tsdb; + +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.util.List; + +public class IginxResultMetadata implements ResultSetMetaData { + + private final List columnNames; + private final List columnTypes; + + public IginxResultMetadata(List columnNames, List columnTypes) { + this.columnNames = columnNames; + this.columnTypes = columnTypes; + } + + @Override + public int getColumnCount() { + return columnNames.size(); + } + + @Override + public String getColumnLabel(int column) throws SQLException { + checkColumnIndex(column); + return columnNames.get(column - 1); + } + + @Override + public String getColumnName(int column) throws SQLException { + return getColumnLabel(column); + } + + @Override + public int getColumnType(int column) throws SQLException { + checkColumnIndex(column); + return columnTypes.get(column - 1); + } + + private void checkColumnIndex(int column) throws SQLException { + if (columnNames == null || columnNames.isEmpty()) throw new SQLException("No column exists"); + if (column < 1) throw new SQLException("Column Index out of range, " + column + " < 1"); + if (column > columnNames.size()) + throw new SQLException("Column Index out of range, " + column + " > " + columnNames.size()); + } + + @Override + public String getColumnTypeName(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isAutoIncrement(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isCaseSensitive(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isSearchable(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isCurrency(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int isNullable(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isSigned(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getColumnDisplaySize(int column) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getSchemaName(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getPrecision(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getScale(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getTableName(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getCatalogName(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isReadOnly(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isWritable(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isDefinitelyWritable(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getColumnClassName(int column) throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T unwrap(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } +} diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultSet.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultSet.java new file mode 100644 index 0000000000..ee0f10b4fc --- /dev/null +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultSet.java @@ -0,0 +1,1009 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.jdbc.tsdb; + +import java.io.InputStream; +import java.io.Reader; +import java.math.BigDecimal; +import java.net.URL; +import java.sql.*; +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +public class IginxResultSet implements ResultSet { + + private final List columnNames; + private final List columnTypes; + private final List> rows; + + private int position = -1; + + public IginxResultSet( + List columnNames, List columnTypes, List> rows) { + this.columnNames = columnNames; + this.columnTypes = columnTypes; + this.rows = rows; + } + + @Override + public boolean next() { + position++; + return position < rows.size(); + } + + @Override + public void close() {} + + @Override + public String getString(int columnIndex) throws SQLException { + try { + return (rows.get(position).get(columnIndex - 1)).toString(); + } catch (Exception e) { + throw new SQLException(e); + } + } + + @Override + public ResultSetMetaData getMetaData() throws SQLException { + return new IginxResultMetadata(columnNames, columnTypes); + } + + @Override + public boolean wasNull() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean getBoolean(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public byte getByte(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public short getShort(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getInt(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public long getLong(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public float getFloat(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public double getDouble(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public byte[] getBytes(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Date getDate(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Time getTime(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Timestamp getTimestamp(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getAsciiStream(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getUnicodeStream(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getBinaryStream(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getString(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean getBoolean(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public byte getByte(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public short getShort(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getInt(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public long getLong(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public float getFloat(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public double getDouble(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public byte[] getBytes(String columnLabel) throws SQLException { + return new byte[0]; + } + + @Override + public Date getDate(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Time getTime(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Timestamp getTimestamp(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getAsciiStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getUnicodeStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getBinaryStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public SQLWarning getWarnings() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void clearWarnings() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getCursorName() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getObject(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getObject(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int findColumn(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Reader getCharacterStream(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Reader getCharacterStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public BigDecimal getBigDecimal(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public BigDecimal getBigDecimal(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isBeforeFirst() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isAfterLast() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isFirst() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isLast() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void beforeFirst() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void afterLast() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean first() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean last() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean absolute(int row) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean relative(int rows) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean previous() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setFetchDirection(int direction) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getFetchDirection() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setFetchSize(int rows) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getFetchSize() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getType() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getConcurrency() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean rowUpdated() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean rowInserted() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean rowDeleted() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNull(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBoolean(int columnIndex, boolean x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateByte(int columnIndex, byte x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateShort(int columnIndex, short x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateInt(int columnIndex, int x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateLong(int columnIndex, long x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateFloat(int columnIndex, float x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateDouble(int columnIndex, double x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateString(int columnIndex, String x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBytes(int columnIndex, byte[] x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateDate(int columnIndex, Date x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateTime(int columnIndex, Time x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(int columnIndex, Object x, int scaleOrLength) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(int columnIndex, Object x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNull(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBoolean(String columnLabel, boolean x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateByte(String columnLabel, byte x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateShort(String columnLabel, short x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateInt(String columnLabel, int x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateLong(String columnLabel, long x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateFloat(String columnLabel, float x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateDouble(String columnLabel, double x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateString(String columnLabel, String x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBytes(String columnLabel, byte[] x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateDate(String columnLabel, Date x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateTime(String columnLabel, Time x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateTimestamp(String columnLabel, Timestamp x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x, int length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader, int length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(String columnLabel, Object x, int scaleOrLength) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(String columnLabel, Object x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void insertRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void deleteRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void refreshRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void cancelRowUpdates() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void moveToInsertRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void moveToCurrentRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Statement getStatement() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getObject(int columnIndex, Map> map) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Ref getRef(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Blob getBlob(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Clob getClob(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Array getArray(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getObject(String columnLabel, Map> map) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Ref getRef(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Blob getBlob(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Clob getClob(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Array getArray(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Date getDate(int columnIndex, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Date getDate(String columnLabel, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Time getTime(int columnIndex, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Time getTime(String columnLabel, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Timestamp getTimestamp(String columnLabel, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public URL getURL(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public URL getURL(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRef(int columnIndex, Ref x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRef(String columnLabel, Ref x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(int columnIndex, Blob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(String columnLabel, Blob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(int columnIndex, Clob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(String columnLabel, Clob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateArray(int columnIndex, Array x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateArray(String columnLabel, Array x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public RowId getRowId(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public RowId getRowId(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRowId(int columnIndex, RowId x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRowId(String columnLabel, RowId x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getHoldability() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isClosed() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNString(int columnIndex, String nString) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNString(String columnLabel, String nString) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(int columnIndex, NClob nClob) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(String columnLabel, NClob nClob) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public NClob getNClob(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public NClob getNClob(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public SQLXML getSQLXML(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public SQLXML getSQLXML(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getNString(int columnIndex) throws SQLException { + return ""; + } + + @Override + public String getNString(String columnLabel) throws SQLException { + return ""; + } + + @Override + public Reader getNCharacterStream(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Reader getNCharacterStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNCharacterStream(String columnLabel, Reader reader, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(int columnIndex, InputStream inputStream, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(String columnLabel, InputStream inputStream, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(int columnIndex, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(String columnLabel, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(int columnIndex, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(String columnLabel, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(int columnIndex, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(String columnLabel, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T getObject(int columnIndex, Class type) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T getObject(String columnLabel, Class type) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T unwrap(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } +} diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxStatement.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxStatement.java new file mode 100644 index 0000000000..826081b23c --- /dev/null +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxStatement.java @@ -0,0 +1,324 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.jdbc.tsdb; + +import cn.edu.tsinghua.iginx.exception.SessionException; +import cn.edu.tsinghua.iginx.session.SessionQueryDataSet; +import java.sql.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +public class IginxStatement implements Statement { + + protected IginxConnection connection; + + public IginxStatement(IginxConnection connection) { + this.connection = connection; + } + + @Override + public ResultSet executeQuery(String sql) throws SQLException { + String trimedSql = sql.trim().toLowerCase(); + if (!trimedSql.endsWith(";")) { + return executeMagicQuery(trimedSql); + } + throw new SQLFeatureNotSupportedException("Only support magic query"); + } + + private static final String SCAN_SQL_PREFIX = "select * from sensor where "; + + private ResultSet executeMagicQuery(String sql) throws SQLException { + if (sql.startsWith(SCAN_SQL_PREFIX)) { + return executeMagicScan(sql.substring(SCAN_SQL_PREFIX.length())); + } else if (sql.equals("describe table sensor")) { + return new IginxResultSet( + Collections.singletonList("Field"), + Collections.singletonList(Types.VARCHAR), + Arrays.asList( + Collections.singletonList("device_id"), + Collections.singletonList("time"), + Collections.singletonList("field0"))); + } + + throw new SQLFeatureNotSupportedException("Magic query not supported: " + sql); + } + + private static final Pattern SCAN_FILTER_PATTERN = + Pattern.compile("device_id = '(.+)' and time between (\\d+) and (\\d+)"); + + private ResultSet executeMagicScan(String where) throws SQLException { + Matcher matcher = SCAN_FILTER_PATTERN.matcher(where); + if (!matcher.matches()) { + throw new SQLSyntaxErrorException("Invalid scan filter: " + where); + } + String deviceId = matcher.group(1); + long startTime = Long.parseLong(matcher.group(2)); + long endTime = Long.parseLong(matcher.group(3)); + String path = deviceId.replace(':', '.') + ".field0"; + List paths = Collections.singletonList(path); + List> values = new ArrayList<>(); + try { + SessionQueryDataSet dataSet = + connection.getSessionPool().queryData(paths, startTime, endTime); + long[] keys = dataSet.getKeys(); + List devices = + dataSet.getPaths().stream() + .map(p -> p.substring(0, p.lastIndexOf('.'))) + .map(p -> p.replace('.', ':')) + .collect(Collectors.toList()); + List> valuesList = dataSet.getValues(); + for (int row = 0; row < keys.length; row++) { + long key = keys[row]; + List rowData = valuesList.get(row); + for (int col = 0; col < devices.size(); col++) { + Object value = rowData.get(col); + if (value == null) { + continue; + } + String device = devices.get(col); + values.add(Arrays.asList(device, key, new String((byte[]) value))); + } + } + + return new IginxResultSet( + Arrays.asList("device_id", "time", "field0"), + Arrays.asList(Types.VARCHAR, Types.BIGINT, Types.VARCHAR), + values); + } catch (SessionException e) { + throw new SQLException("Fail to execute scan", e); + } + } + + @Override + public void close() throws SQLException {} + + @Override + public ResultSet getResultSet() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean execute(String sql) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int executeUpdate(String sql) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int executeUpdate(String sql, int[] columnIndexes) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int executeUpdate(String sql, String[] columnNames) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean execute(String sql, int[] columnIndexes) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean execute(String sql, String[] columnNames) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int[] executeBatch() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void addBatch(String sql) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void clearBatch() throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Connection getConnection() throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isClosed() throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public SQLWarning getWarnings() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void clearWarnings() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getResultSetType() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getFetchDirection() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setFetchDirection(int direction) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getMaxFieldSize() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setMaxFieldSize(int max) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getMaxRows() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setMaxRows(int max) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setEscapeProcessing(boolean enable) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getQueryTimeout() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setQueryTimeout(int seconds) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void cancel() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setCursorName(String name) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getUpdateCount() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean getMoreResults() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getFetchSize() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setFetchSize(int rows) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getResultSetConcurrency() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean getMoreResults(int current) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public ResultSet getGeneratedKeys() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getResultSetHoldability() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isPoolable() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setPoolable(boolean poolable) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void closeOnCompletion() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isCloseOnCompletion() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T unwrap(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } +} diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/util/AuthorityInfo.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/util/AuthorityInfo.java new file mode 100644 index 0000000000..5a614fc4bc --- /dev/null +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/util/AuthorityInfo.java @@ -0,0 +1,75 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.jdbc.tsdb.util; + +import java.net.URI; + +public class AuthorityInfo { + private final String user; + private final String password; + private final String host; + private final Integer port; + + public AuthorityInfo(String user, String password, String host, Integer port) { + this.user = user; + this.password = password; + this.host = host; + this.port = port; + } + + public static AuthorityInfo parse(String authority) { + String temp = "temp:"; + if (authority != null && !authority.isEmpty()) { + temp += "//" + authority; + } + temp += "/"; + URI uri = URI.create(temp); + String userInfo = uri.getUserInfo(); + String user = null; + String password = null; + if (userInfo != null) { + String[] userAndPassword = userInfo.split(":"); + user = userAndPassword[0]; + if (userAndPassword.length > 1) { + password = userAndPassword[1]; + } + } + String host = uri.getHost(); + Integer port = uri.getPort(); + if (port == -1) { + port = null; + } + return new AuthorityInfo(user, password, host, port); + } + + public String getUser() { + return user == null ? "root" : user; + } + + public String getPassword() { + return password == null ? "root" : password; + } + + public String getHost() { + return host == null ? "127.0.0.1" : host; + } + + public Integer getPort() { + return port == null ? 6888 : port; + } +} diff --git a/jdbc/src/main/resources/META-INF/services/java.sql.Driver b/jdbc/src/main/resources/META-INF/services/java.sql.Driver new file mode 100644 index 0000000000..4d09b80b64 --- /dev/null +++ b/jdbc/src/main/resources/META-INF/services/java.sql.Driver @@ -0,0 +1,2 @@ +cn.edu.tsinghua.iginx.jdbc.tsdb.IginxDriver +cn.edu.tsinghua.iginx.jdbc.IginXDriver \ No newline at end of file diff --git a/jdbc/src/test/java/TSDBClientIT.java b/jdbc/src/test/java/TSDBClientIT.java new file mode 100644 index 0000000000..47cbe39f01 --- /dev/null +++ b/jdbc/src/test/java/TSDBClientIT.java @@ -0,0 +1,152 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +import cn.edu.tsinghua.iginx.exception.SessionException; +import cn.edu.tsinghua.iginx.jdbc.tsdb.IginxConnection; +import java.sql.*; +import java.util.HashMap; +import java.util.Properties; +import java.util.Vector; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class TSDBClientIT { + + private Connection connection; + + @Before + public void before() throws SQLException { + String url = + "jdbc:iginx:tsdb:;database=benchmark;lindorm.tsdb.driver.socket.timeout=30000;lindorm.tsdb.driver.connect.timeout=30000;lindorm.tsdb.driver.http.compression=false"; + + Properties info = new Properties(); + info.put("iginx.authorities", "192.168.100.101:6888#192.168.100.101:7888#192.168.100.101:6888"); + + connection = DriverManager.getConnection(url, info); + Assert.assertNotNull(connection); + } + + @After + public void after() throws SQLException { + try { + ((IginxConnection) connection).getSessionPool().executeSql("clear data;"); + } catch (SessionException e) { + throw new SQLException(e); + } + connection.close(); + } + + @Test + public void testConnect() {} + + private static String getInsertSql(String table, String columns, String variables) { + return "insert into " + table + "(" + columns + ") values (" + variables + ")"; + } + + private static final String INSERT_SQL = + "insert into sensor(device_id,time,field0) values (?,?,?)"; + + @Test + public void testDecribe() throws SQLException { + StringBuilder preparedVariables = new StringBuilder(); + StringBuilder preparedColumns = new StringBuilder(); + + String tableName = "sensor"; + String describeTable = "describe table " + tableName; + try (Statement describeStmt = connection.createStatement(); + ResultSet tableSchema = describeStmt.executeQuery(describeTable)) { + int columns = 0; + while (tableSchema.next()) { + columns++; + if (columns == 1) { + preparedColumns.append(tableSchema.getString(1)); + preparedVariables.append("?"); + } else { + preparedColumns.append(","); + preparedColumns.append(tableSchema.getString(1)); + preparedVariables.append(",?"); + } + } + } + + Assert.assertEquals("device_id,time,field0", preparedColumns.toString()); + Assert.assertEquals("?,?,?", preparedVariables.toString()); + + String insertSql = + getInsertSql(tableName, preparedColumns.toString(), preparedVariables.toString()); + Assert.assertEquals(INSERT_SQL, insertSql); + } + + @Test + public void testInsert() throws SQLException { + try (PreparedStatement preparedInsertStmt = connection.prepareStatement(INSERT_SQL)) { + for (int timestamp = 0; timestamp < 20; timestamp++) { + int field = timestamp % 4; + String deviceId = String.format("tpc11:prekey%d", field); + String value = String.format("value%d", timestamp); + preparedInsertStmt.setString(1, deviceId); + preparedInsertStmt.setLong(2, timestamp); + preparedInsertStmt.setString(3, value); + preparedInsertStmt.addBatch(); + } + preparedInsertStmt.executeBatch(); + } + } + + @Test + public void testScan() throws SQLException { + testInsert(); + String deviceId = "tpc11:prekey1"; + long timestamp = 10; + String sqlQueryStr = + "SELECT * FROM sensor WHERE device_id = '" + + deviceId + + "' and time " + + " between " + + timestamp + + " and " + + (timestamp + 5000L); + Vector> result = new Vector<>(); + try (Statement queryStmt = connection.createStatement(); + ResultSet resultSet = queryStmt.executeQuery(sqlQueryStr)) { + ResultSetMetaData metaData = resultSet.getMetaData(); + while (resultSet.next()) { + HashMap tuple = new HashMap<>(); + for (int columnIndex = 1; columnIndex <= metaData.getColumnCount(); columnIndex++) { + tuple.put( + metaData.getColumnName(columnIndex).toLowerCase(), resultSet.getString(columnIndex)); + } + result.add(tuple); + } + } + Vector> expected = new Vector<>(); + for (int key = 10; key < 20; key++) { + int field = key % 4; + if (field != 1) { + continue; + } + HashMap tuple = new HashMap<>(); + tuple.put("device_id", String.format("tpc11:prekey%d", field)); + tuple.put("time", String.valueOf(key)); + tuple.put("field0", String.format("value%d", key)); + expected.add(tuple); + } + Assert.assertEquals(expected, result); + } +} diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ThriftConnPool.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ThriftConnPool.java index 4997e7c72b..928b1cd703 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ThriftConnPool.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ThriftConnPool.java @@ -28,6 +28,7 @@ import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; +import org.apache.thrift.transport.TTransportException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,10 +42,12 @@ public class ThriftConnPool { private static final long IDLE_TIMEOUT = BaseObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_DURATION.toMillis(); + private static final long TRY_TIMES = 6; + private final GenericObjectPool pool; public ThriftConnPool(String ip, int port) { - this(ip, port, DEFAULT_MAX_SIZE, MAX_WAIT_TIME, IDLE_TIMEOUT); + this(ip, port, DEFAULT_MAX_SIZE, MAX_WAIT_TIME, IDLE_TIMEOUT, TRY_TIMES); } public ThriftConnPool(String ip, int port, Map extraParams) { @@ -56,15 +59,18 @@ public ThriftConnPool(String ip, int port, Map extraParams) { Integer.parseInt(extraParams.getOrDefault("thrift_timeout", String.valueOf(MAX_WAIT_TIME))), Long.parseLong( extraParams.getOrDefault( - "thrift_pool_min_evictable_idle_time_millis", String.valueOf(IDLE_TIMEOUT)))); + "thrift_pool_min_evictable_idle_time_millis", String.valueOf(IDLE_TIMEOUT))), + Long.parseLong( + extraParams.getOrDefault("thrift_pool_try_connect_times", String.valueOf(TRY_TIMES)))); } - public ThriftConnPool(String ip, int port, int maxSize, int maxWaitTime, long idleTimeout) { + public ThriftConnPool( + String ip, int port, int maxSize, int maxWaitTime, long idleTimeout, long tryTimes) { GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig<>(); poolConfig.setMaxTotal(maxSize); poolConfig.setMinEvictableIdleDuration(Duration.ofMillis(idleTimeout)); // 设置空闲连接的超时时间 - TSocketFactory socketFactory = new TSocketFactory(ip, port, maxWaitTime); + TSocketFactory socketFactory = new TSocketFactory(ip, port, maxWaitTime, tryTimes); pool = new GenericObjectPool<>(socketFactory, poolConfig); } @@ -99,18 +105,29 @@ public static class TSocketFactory implements PooledObjectFactory { private final int port; private final int maxWaitTime; // 连接超时时间(毫秒) 以及 socket 超时时间 + private final long tryTimes; - public TSocketFactory(String ip, int port, int maxWaitTime) { + public TSocketFactory(String ip, int port, int maxWaitTime, long tryTimes) { this.ip = ip; this.port = port; this.maxWaitTime = maxWaitTime; + this.tryTimes = tryTimes; } @Override public PooledObject makeObject() throws Exception { - TTransport transport = new TSocket(ip, port, maxWaitTime); - transport.open(); - return new DefaultPooledObject<>(transport); + TSocket socket = new TSocket(ip, port, maxWaitTime); + for (int i = 1; ; i++) { + try { + socket.open(); + return new DefaultPooledObject<>(socket); + } catch (TTransportException e) { + if (i >= tryTimes) { + throw e; + } + LOGGER.warn("makeObject failed, retrying...", e); + } + } } @Override From 1f1349161826b2998289d973a58c42fe42d995d1 Mon Sep 17 00:00:00 2001 From: ZiyuZhao <133029901+ziyuzhao-zzy@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:43:09 +0800 Subject: [PATCH 11/33] =?UTF-8?q?fix(MAX=5FHEAP=5FSIZE):=20set=20max=20hea?= =?UTF-8?q?p=20siez=20max(min(1/2=20ram,=201024MB),=20min(1=E2=80=A6=20(#4?= =?UTF-8?q?56)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(MAX_HEAP_SIZE): set max heap siez max(min(1/2 ram, 1024MB), min(1/4 ram, 64GB)) * fix start_iginx.bat * fix(MAX_HEAP_SIZE): user-defined ratio * fix(MAX_HEAP_SIZE): user-defined ratio * fix(MAX_HEAP_SIZE, MIN_HEAP_SIZE): user-defined percentage * fix(MAX_HEAP_SIZE, MIN_HEAP_SIZE): user-defined percentage --------- Co-authored-by: Yuqing Zhu --- .../assembly/resources/sbin/start_iginx.bat | 19 ++++++------- .../assembly/resources/sbin/start_iginx.sh | 27 ++++++------------- 2 files changed, 16 insertions(+), 30 deletions(-) diff --git a/core/src/assembly/resources/sbin/start_iginx.bat b/core/src/assembly/resources/sbin/start_iginx.bat index 0701aebc0d..39b3e3b635 100644 --- a/core/src/assembly/resources/sbin/start_iginx.bat +++ b/core/src/assembly/resources/sbin/start_iginx.bat @@ -103,20 +103,17 @@ for /f "tokens=*" %%a in ('cscript //nologo %temp%\tmp.vbs') do set system_memor del %temp%\tmp.vbs set system_memory_in_mb=%system_memory_in_mb:,=% -set /a half_=%system_memory_in_mb%/4 -set /a quarter_=%half_%/8 - -@REM if ["%half_%"] GTR ["1024"] set half_=1024 -@REM if ["%quarter_%"] GTR ["8192"] set quarter_=8192 - -if %half_% GTR %quarter_% ( - set max_heap_size_in_mb=%half_% -) else set max_heap_size_in_mb=%quarter_% - +@REM set the required memory percentage according to your needs (< 100 & must be a integer) +set /a max_percentageNumerator=50 +set /a max_heap_size_in_mb=%system_memory_in_mb% * %max_percentageNumerator% / 100 set MAX_HEAP_SIZE=%max_heap_size_in_mb%M +set /a min_percentageNumerator=50 +set /a min_heap_size_in_mb=%system_memory_in_mb% * %min_percentageNumerator% / 100 +set MIN_HEAP_SIZE=%min_heap_size_in_mb%M + @REM ----------------------------------------------------------------------------- -set HEAP_OPTS=-Xmx%MAX_HEAP_SIZE% -Xms%MAX_HEAP_SIZE% -Xloggc:"%IGINX_HOME%\gc.log" -XX:+PrintGCDateStamps -XX:+PrintGCDetails +set HEAP_OPTS=-Xmx%MAX_HEAP_SIZE% -Xms%MIN_HEAP_SIZE% -Xloggc:"%IGINX_HOME%\gc.log" -XX:+PrintGCDateStamps -XX:+PrintGCDetails @REM ***** CLASSPATH library setting ***** @REM Ensure that any user defined CLASSPATH variables are not used on startup diff --git a/core/src/assembly/resources/sbin/start_iginx.sh b/core/src/assembly/resources/sbin/start_iginx.sh index a8aa8b71ee..1a0e3da017 100755 --- a/core/src/assembly/resources/sbin/start_iginx.sh +++ b/core/src/assembly/resources/sbin/start_iginx.sh @@ -101,25 +101,14 @@ calculate_heap_sizes() { system_cpu_cores=1 fi - # set max heap size based on the following - # max(min(1/2 ram, 1024MB), min(1/4 ram, 64GB)) - # calculate 1/2 ram and cap to 1024MB - # calculate 1/4 ram and cap to 65536MB - # pick the max - half_system_memory_in_mb=$((${system_memory_in_mb} / 2)) - quarter_system_memory_in_mb=$((${half_system_memory_in_mb} / 2)) -# if (( ${half_system_memory_in_mb} > 1024 )); then -# half_system_memory_in_mb=1024 -# fi -# if (( ${quarter_system_memory_in_mb} > 65536 )); then -# quarter_system_memory_in_mb=65536 -# fi - if (( ${half_system_memory_in_mb} > ${quarter_system_memory_in_mb} )); then - max_heap_size_in_mb=$half_system_memory_in_mb - else - max_heap_size_in_mb=$quarter_system_memory_in_mb - fi + # set the required memory percentage according to your needs (< 100 & must be a integer) + max_percentageNumerator=50 + max_heap_size_in_mb=$((${system_memory_in_mb} * ${max_percentageNumerator} / 100)) MAX_HEAP_SIZE=${max_heap_size_in_mb}M + + min_percentageNumerator=50 + min_heap_size_in_mb=$((${system_memory_in_mb} * ${min_percentageNumerator} / 100)) + MIN_HEAP_SIZE=${min_heap_size_in_mb}M } calculate_heap_sizes @@ -128,7 +117,7 @@ calculate_heap_sizes # to ensure Word Splitting works as expected, # i.e. split $HEAP_OPTS into two arguments HEAP_OPTS[0]=-Xmx$MAX_HEAP_SIZE -HEAP_OPTS[1]=-Xms$MAX_HEAP_SIZE +HEAP_OPTS[1]=-Xms$MIN_HEAP_SIZE # continue to other parameters LOCAL_JAVA_OPTS=( From 60c246f1d038062cb088d2a1867bcf9965dc9f48 Mon Sep 17 00:00:00 2001 From: ZM <12236590+shinyano@users.noreply.github.com> Date: Sat, 19 Oct 2024 14:33:36 +0800 Subject: [PATCH 12/33] fix(core): register engine with same ip and port (#457) Test connection before registering engine. When a new database is registered, check for existing databases with the same IP and port. If the connection fails and the existing database is read-only, delete the existing database. --- .github/actions/service/mysql/action.yml | 2 +- .../scripts/dataSources/restart/influxdb.sh | 27 +++ .../dataSources/restart/influxdb_macos.sh | 26 +++ .../dataSources/restart/influxdb_windows.sh | 31 +++ .github/scripts/dataSources/restart/iotdb.sh | 31 +++ .../dataSources/restart/iotdb_macos.sh | 32 +++ .../dataSources/restart/iotdb_windows.sh | 26 +++ .../scripts/dataSources/restart/mongodb.sh | 30 +++ .../dataSources/restart/mongodb_macos.sh | 30 +++ .../dataSources/restart/mongodb_windows.sh | 31 +++ .github/scripts/dataSources/restart/mysql.sh | 24 ++ .../dataSources/restart/mysql_macos.sh | 24 ++ .../dataSources/restart/mysql_windows.sh | 25 +++ .../scripts/dataSources/restart/postgresql.sh | 28 +++ .../dataSources/restart/postgresql_macos.sh | 27 +++ .../dataSources/restart/postgresql_windows.sh | 27 +++ .github/scripts/dataSources/restart/redis.sh | 29 +++ .../dataSources/restart/redis_macos.sh | 28 +++ .../dataSources/restart/redis_windows.sh | 29 +++ .../scripts/dataSources/shutdown/influxdb.sh | 31 +++ .../dataSources/shutdown/influxdb_macos.sh | 34 +++ .../dataSources/shutdown/influxdb_windows.sh | 34 +++ .github/scripts/dataSources/shutdown/iotdb.sh | 33 +++ .../dataSources/shutdown/iotdb_macos.sh | 33 +++ .../dataSources/shutdown/iotdb_windows.sh | 27 +++ .../scripts/dataSources/shutdown/mongodb.sh | 39 ++++ .../dataSources/shutdown/mongodb_macos.sh | 39 ++++ .../dataSources/shutdown/mongodb_windows.sh | 33 +++ .github/scripts/dataSources/shutdown/mysql.sh | 44 ++++ .../dataSources/shutdown/mysql_macos.sh | 44 ++++ .../dataSources/shutdown/mysql_windows.sh | 50 +++++ .../dataSources/shutdown/postgresql.sh | 27 +++ .../dataSources/shutdown/postgresql_macos.sh | 27 +++ .../shutdown/postgresql_windows.sh | 27 +++ .github/scripts/dataSources/shutdown/redis.sh | 34 +++ .../dataSources/shutdown/redis_macos.sh | 34 +++ .../dataSources/shutdown/redis_windows.sh | 31 +++ .../scripts/dataSources/startup/influxdb.sh | 2 +- .../dataSources/startup/influxdb_macos.sh | 2 +- .github/workflows/DB-CE.yml | 6 +- .../cn/edu/tsinghua/iginx/IginxWorker.java | 208 +++++++++++------- .../engine/physical/storage/IStorage.java | 4 + .../physical/storage/StorageManager.java | 54 +++-- .../metadata/entity/StorageEngineMeta.java | 44 +++- .../iginx/filesystem/FileSystemStorage.java | 14 ++ dataSource/influxdb/pom.xml | 5 + .../iginx/influxdb/InfluxDBStorage.java | 21 +- .../tsinghua/iginx/iotdb/IoTDBStorage.java | 5 +- .../iginx/mongodb/MongoDBStorage.java | 26 +++ .../tsinghua/iginx/redis/RedisStorage.java | 11 + .../iginx/relational/RelationalStorage.java | 5 +- .../expansion/BaseCapacityExpansionIT.java | 134 ++++++++--- .../FileSystemCapacityExpansionIT.java | 15 +- .../influxdb/InfluxDBCapacityExpansionIT.java | 10 + .../iotdb/IoTDB12CapacityExpansionIT.java | 10 + .../mongodb/MongoDBCapacityExpansionIT.java | 10 + .../mysql/MySQLCapacityExpansionIT.java | 10 + .../PostgreSQLCapacityExpansionIT.java | 10 + .../redis/RedisCapacityExpansionIT.java | 10 + 59 files changed, 1600 insertions(+), 144 deletions(-) create mode 100644 .github/scripts/dataSources/restart/influxdb.sh create mode 100644 .github/scripts/dataSources/restart/influxdb_macos.sh create mode 100644 .github/scripts/dataSources/restart/influxdb_windows.sh create mode 100644 .github/scripts/dataSources/restart/iotdb.sh create mode 100644 .github/scripts/dataSources/restart/iotdb_macos.sh create mode 100644 .github/scripts/dataSources/restart/iotdb_windows.sh create mode 100644 .github/scripts/dataSources/restart/mongodb.sh create mode 100644 .github/scripts/dataSources/restart/mongodb_macos.sh create mode 100644 .github/scripts/dataSources/restart/mongodb_windows.sh create mode 100644 .github/scripts/dataSources/restart/mysql.sh create mode 100644 .github/scripts/dataSources/restart/mysql_macos.sh create mode 100644 .github/scripts/dataSources/restart/mysql_windows.sh create mode 100644 .github/scripts/dataSources/restart/postgresql.sh create mode 100644 .github/scripts/dataSources/restart/postgresql_macos.sh create mode 100644 .github/scripts/dataSources/restart/postgresql_windows.sh create mode 100644 .github/scripts/dataSources/restart/redis.sh create mode 100644 .github/scripts/dataSources/restart/redis_macos.sh create mode 100644 .github/scripts/dataSources/restart/redis_windows.sh create mode 100644 .github/scripts/dataSources/shutdown/influxdb.sh create mode 100644 .github/scripts/dataSources/shutdown/influxdb_macos.sh create mode 100644 .github/scripts/dataSources/shutdown/influxdb_windows.sh create mode 100644 .github/scripts/dataSources/shutdown/iotdb.sh create mode 100644 .github/scripts/dataSources/shutdown/iotdb_macos.sh create mode 100644 .github/scripts/dataSources/shutdown/iotdb_windows.sh create mode 100644 .github/scripts/dataSources/shutdown/mongodb.sh create mode 100644 .github/scripts/dataSources/shutdown/mongodb_macos.sh create mode 100644 .github/scripts/dataSources/shutdown/mongodb_windows.sh create mode 100644 .github/scripts/dataSources/shutdown/mysql.sh create mode 100644 .github/scripts/dataSources/shutdown/mysql_macos.sh create mode 100644 .github/scripts/dataSources/shutdown/mysql_windows.sh create mode 100644 .github/scripts/dataSources/shutdown/postgresql.sh create mode 100644 .github/scripts/dataSources/shutdown/postgresql_macos.sh create mode 100644 .github/scripts/dataSources/shutdown/postgresql_windows.sh create mode 100644 .github/scripts/dataSources/shutdown/redis.sh create mode 100644 .github/scripts/dataSources/shutdown/redis_macos.sh create mode 100644 .github/scripts/dataSources/shutdown/redis_windows.sh diff --git a/.github/actions/service/mysql/action.yml b/.github/actions/service/mysql/action.yml index da88544ba1..26e73ea079 100644 --- a/.github/actions/service/mysql/action.yml +++ b/.github/actions/service/mysql/action.yml @@ -40,5 +40,5 @@ runs: run: | for port in ${{ inputs.ports }}; do mysqld --defaults-file=./$port.ini --initialize-insecure - mysqld --defaults-file=./$port.ini & + mysqld --defaults-file=./$port.ini & echo $! > ./mysql_$port.pid done diff --git a/.github/scripts/dataSources/restart/influxdb.sh b/.github/scripts/dataSources/restart/influxdb.sh new file mode 100644 index 0000000000..5155639b25 --- /dev/null +++ b/.github/scripts/dataSources/restart/influxdb.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# usage:.sh + + +port=$1 +echo "Starting InfluxDB on port $port" +sudo sh -c "cd influxdb2-2.0.7-linux-amd64-$port/; nohup ./influxd run --bolt-path=~/.influxdbv2/influxd.bolt --engine-path=~/.influxdbv2/engine --http-bind-address=:$port --query-memory-bytes=20971520 > influxdb_$port.log 2>&1 &" +sleep 10 + diff --git a/.github/scripts/dataSources/restart/influxdb_macos.sh b/.github/scripts/dataSources/restart/influxdb_macos.sh new file mode 100644 index 0000000000..ae78ae8c43 --- /dev/null +++ b/.github/scripts/dataSources/restart/influxdb_macos.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# usage:.sh + + +port=$1 +echo "Starting InfluxDB on port $port" +sudo sh -c "cd influxdb2-2.0.7-darwin-amd64-$port/; nohup ./influxd run --bolt-path=~/.influxdbv2/influxd.bolt --engine-path=~/.influxdbv2/engine --http-bind-address=:$port --query-memory-bytes=20971520 > influxdb_$port.log 2>&1 &" +sleep 10 diff --git a/.github/scripts/dataSources/restart/influxdb_windows.sh b/.github/scripts/dataSources/restart/influxdb_windows.sh new file mode 100644 index 0000000000..c6cc033878 --- /dev/null +++ b/.github/scripts/dataSources/restart/influxdb_windows.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# usage:.sh + +port=$1 +echo "Starting InfluxDB on port $port" +pathPrefix="influxdb2-2.0.7-windows-amd64-$port" + +arguments="-ArgumentList 'run', '--bolt-path=$pathPrefix/.influxdbv2/influxd.bolt', '--engine-path=$pathPrefix/.influxdbv2/engine', '--http-bind-address=:$port', '--query-memory-bytes=20971520'" + +redirect="-RedirectStandardOutput '$pathPrefix/logs/db.log' -RedirectStandardError '$pathPrefix/logs/db-error.log'" + +powershell -command "Start-Process -FilePath 'influxdb2-2.0.7-windows-amd64-$port/influxd' $arguments -NoNewWindow $redirect" +sleep 3 diff --git a/.github/scripts/dataSources/restart/iotdb.sh b/.github/scripts/dataSources/restart/iotdb.sh new file mode 100644 index 0000000000..d675f6f35e --- /dev/null +++ b/.github/scripts/dataSources/restart/iotdb.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# usage:.sh + +set -e +port=$1 +cd apache-iotdb-0.12.6-server-bin-$port/ +sudo sysctl -w net.core.somaxconn=65535 +sudo sh -c "nohup sbin/start-server.sh >run.log 2>&1 &" + +sleep 3 +sudo lsof -i:$port +if [ $? -eq 1 ]; then + echo "No process is listening on port $port" +fi \ No newline at end of file diff --git a/.github/scripts/dataSources/restart/iotdb_macos.sh b/.github/scripts/dataSources/restart/iotdb_macos.sh new file mode 100644 index 0000000000..b2b810d364 --- /dev/null +++ b/.github/scripts/dataSources/restart/iotdb_macos.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# usage:.sh + +set -e + +port=$1 +cd apache-iotdb-0.12.6-server-bin-$port/ +sudo sysctl -w kern.ipc.somaxconn=65535 +sudo sh -c "nohup sbin/start-server.sh >run.log 2>&1 &" + +sleep 3 +sudo lsof -i:$port +if [ $? -eq 1 ]; then + echo "No process is listening on port $port" +fi \ No newline at end of file diff --git a/.github/scripts/dataSources/restart/iotdb_windows.sh b/.github/scripts/dataSources/restart/iotdb_windows.sh new file mode 100644 index 0000000000..9e131e2ea5 --- /dev/null +++ b/.github/scripts/dataSources/restart/iotdb_windows.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# usage:.sh + +set -e + +cd apache-iotdb-0.12.6-server-bin-$1/ +sh -c "nohup sbin/start-server.bat &" + +netstat -ano | grep ":$1" \ No newline at end of file diff --git a/.github/scripts/dataSources/restart/mongodb.sh b/.github/scripts/dataSources/restart/mongodb.sh new file mode 100644 index 0000000000..67aac3ea7b --- /dev/null +++ b/.github/scripts/dataSources/restart/mongodb.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 +cd "$SERVICE_DIR/mongodb/" +PID_FILE="$PORT/mongodb.pid" +nohup mongod --port $PORT --dbpath $PORT --logpath $PORT/mongodb.log > /dev/null 2>&1 & +echo $! > "$PID_FILE" +cat $PORT/mongodb.log +echo "MongoDB started on port $PORT" +sleep 3 diff --git a/.github/scripts/dataSources/restart/mongodb_macos.sh b/.github/scripts/dataSources/restart/mongodb_macos.sh new file mode 100644 index 0000000000..40cf771444 --- /dev/null +++ b/.github/scripts/dataSources/restart/mongodb_macos.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e +PORT=$1 +cd "$SERVICE_DIR_MAC/mongodb/" +PID_FILE="$PORT/mongodb.pid" +nohup mongod --port $PORT --dbpath $PORT --logpath $PORT/mongodb.log > /dev/null 2>&1 & +echo $! > "$PID_FILE" +cat $PORT/mongodb.log +echo "MongoDB started on port $PORT" + +sleep 3 diff --git a/.github/scripts/dataSources/restart/mongodb_windows.sh b/.github/scripts/dataSources/restart/mongodb_windows.sh new file mode 100644 index 0000000000..17a0041623 --- /dev/null +++ b/.github/scripts/dataSources/restart/mongodb_windows.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 +cd "$SERVICE_DIR_WIN/mongodb" +PID_FILE="$PORT/mongodb.pid" +nohup mongod --port $PORT --dbpath $PORT --logpath $PORT/mongodb.log > /dev/null 2>&1 & +echo $! > "$PID_FILE" +cat $PORT/mongodb.log +echo "MongoDB started on port $PORT" + +sleep 3 diff --git a/.github/scripts/dataSources/restart/mysql.sh b/.github/scripts/dataSources/restart/mysql.sh new file mode 100644 index 0000000000..e0887f87c1 --- /dev/null +++ b/.github/scripts/dataSources/restart/mysql.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +port=$1 +cd "$SERVICE_DIR/mysql" +sudo nohup mysqld --defaults-file=./$port.ini > /dev/null 2>&1 & +echo $! > ./mysql_$port.pid +sleep 2 diff --git a/.github/scripts/dataSources/restart/mysql_macos.sh b/.github/scripts/dataSources/restart/mysql_macos.sh new file mode 100644 index 0000000000..31a4bd3387 --- /dev/null +++ b/.github/scripts/dataSources/restart/mysql_macos.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +port=$1 +cd "$SERVICE_DIR_MAC/mysql" +sudo nohup mysqld --defaults-file=./$port.ini > /dev/null 2>&1 & +echo $! > ./mysql_$port.pid +sleep 2 \ No newline at end of file diff --git a/.github/scripts/dataSources/restart/mysql_windows.sh b/.github/scripts/dataSources/restart/mysql_windows.sh new file mode 100644 index 0000000000..3e89380c5d --- /dev/null +++ b/.github/scripts/dataSources/restart/mysql_windows.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +port=$1 +cd "$SERVICE_DIR_WIN/mysql" +mysqld --defaults-file="$port.ini" & +sleep 2 + +netstat -ano | grep ":$port" \ No newline at end of file diff --git a/.github/scripts/dataSources/restart/postgresql.sh b/.github/scripts/dataSources/restart/postgresql.sh new file mode 100644 index 0000000000..78e92429d1 --- /dev/null +++ b/.github/scripts/dataSources/restart/postgresql.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PGDATA=$1 + +nohup pg_ctl -D ".github/actions/service/postgresql/${PGDATA}" start > /dev/null 2>&1 & + +sleep 3 +lsof -i:$1 \ No newline at end of file diff --git a/.github/scripts/dataSources/restart/postgresql_macos.sh b/.github/scripts/dataSources/restart/postgresql_macos.sh new file mode 100644 index 0000000000..97eb341966 --- /dev/null +++ b/.github/scripts/dataSources/restart/postgresql_macos.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PGDATA=$1 + +pg_ctl -D ".github/actions/service/postgresql/${PGDATA}" start + +lsof -i:$1 \ No newline at end of file diff --git a/.github/scripts/dataSources/restart/postgresql_windows.sh b/.github/scripts/dataSources/restart/postgresql_windows.sh new file mode 100644 index 0000000000..21ff151e54 --- /dev/null +++ b/.github/scripts/dataSources/restart/postgresql_windows.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PGDATA=$1 + +pg_ctl -D ".github/actions/service/postgresql/${PGDATA}" start + +netstat -ano | grep ":$1" \ No newline at end of file diff --git a/.github/scripts/dataSources/restart/redis.sh b/.github/scripts/dataSources/restart/redis.sh new file mode 100644 index 0000000000..f136e5eb54 --- /dev/null +++ b/.github/scripts/dataSources/restart/redis.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 +current_dir=$(pwd) +cd "$SERVICE_DIR/redis" +redis-server --port $PORT --dir "$SERVICE_DIR/redis/$PORT" --daemonize yes --pidfile "$SERVICE_DIR/redis/$PORT/redis.pid" +cd $current_dir +# somehow data is gone +mvn test -q -Dtest=RedisHistoryDataGenerator#oriHasDataExpHasData -DfailIfNoTests=false -P-format diff --git a/.github/scripts/dataSources/restart/redis_macos.sh b/.github/scripts/dataSources/restart/redis_macos.sh new file mode 100644 index 0000000000..8e0a0b1b46 --- /dev/null +++ b/.github/scripts/dataSources/restart/redis_macos.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 +current_dir=$(pwd) +cd "$SERVICE_DIR_MAC/redis" +redis-server --port $PORT --dir "$SERVICE_DIR_MAC/redis/$PORT" --daemonize yes --pidfile "$SERVICE_DIR_MAC/redis/$PORT/redis.pid" +cd $current_dir +mvn test -q -Dtest=RedisHistoryDataGenerator#oriHasDataExpHasData -DfailIfNoTests=false -P-format diff --git a/.github/scripts/dataSources/restart/redis_windows.sh b/.github/scripts/dataSources/restart/redis_windows.sh new file mode 100644 index 0000000000..81065df8df --- /dev/null +++ b/.github/scripts/dataSources/restart/redis_windows.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 +current_dir=$(pwd) +cd "$SERVICE_DIR_WIN/redis" +redis-server --port $PORT --dir "$SERVICE_DIR_WIN/redis/$PORT" --daemonize yes --pidfile "$SERVICE_DIR_WIN/redis/$PORT/redis.pid" +cd $current_dir +mvn test -q -Dtest=RedisHistoryDataGenerator#oriHasDataExpHasData -DfailIfNoTests=false -P-format + diff --git a/.github/scripts/dataSources/shutdown/influxdb.sh b/.github/scripts/dataSources/shutdown/influxdb.sh new file mode 100644 index 0000000000..8ceb9f04ae --- /dev/null +++ b/.github/scripts/dataSources/shutdown/influxdb.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# usage:.sh +port=$1 +cd influxdb2-2.0.7-linux-amd64-$port/ +ls +pid=$(cat "influxdb.pid") +if [ ! -z "$pid" ]; then + echo "Stopping InfluxDB on port $port (PID: $pid)" + sudo kill -9 $pid +else + echo "No InfluxDB instance found running on port $port" +fi +sleep 3 diff --git a/.github/scripts/dataSources/shutdown/influxdb_macos.sh b/.github/scripts/dataSources/shutdown/influxdb_macos.sh new file mode 100644 index 0000000000..711606f4d6 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/influxdb_macos.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# usage:.sh + +port=$1 +cd influxdb2-2.0.7-darwin-amd64-$port/ +ls +pid=$(cat "influxdb.pid") +if [ ! -z "$pid" ]; then + echo "Stopping InfluxDB on port $port (PID: $pid)" + sudo kill -9 $pid + echo "killed" +else + echo "No InfluxDB instance found running on port $port" +fi +sleep 3 + diff --git a/.github/scripts/dataSources/shutdown/influxdb_windows.sh b/.github/scripts/dataSources/shutdown/influxdb_windows.sh new file mode 100644 index 0000000000..9341131f09 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/influxdb_windows.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# usage:.sh + +port=$1 +set -e +port=$1 +pid=$(netstat -ano | grep ":$port" | awk '{print $5}' | head -n 1) +if [ ! -z "$pid" ]; then + echo "Stopping influxdb on port $port (PID: $pid)" + taskkill //PID $pid //F +else + echo "No influxdb instance found running on port $port" +fi + +sleep 3 +netstat -ano | grep ":$port" diff --git a/.github/scripts/dataSources/shutdown/iotdb.sh b/.github/scripts/dataSources/shutdown/iotdb.sh new file mode 100644 index 0000000000..a23d222d52 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/iotdb.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +# usage:.sh + +set -ex +port=$1 +echo "Checking port: $port" +pid=$(sudo lsof -t -i:$port) || { echo "Failed to find process"; exit 1; } +if [ ! -z "$pid" ]; then + echo "Killing process $pid on port $port" + sudo kill -9 $pid || { echo "Failed to kill process"; exit 1; } +else + echo "No process found on port $port" +fi +sleep 5 diff --git a/.github/scripts/dataSources/shutdown/iotdb_macos.sh b/.github/scripts/dataSources/shutdown/iotdb_macos.sh new file mode 100644 index 0000000000..a23d222d52 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/iotdb_macos.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +# usage:.sh + +set -ex +port=$1 +echo "Checking port: $port" +pid=$(sudo lsof -t -i:$port) || { echo "Failed to find process"; exit 1; } +if [ ! -z "$pid" ]; then + echo "Killing process $pid on port $port" + sudo kill -9 $pid || { echo "Failed to kill process"; exit 1; } +else + echo "No process found on port $port" +fi +sleep 5 diff --git a/.github/scripts/dataSources/shutdown/iotdb_windows.sh b/.github/scripts/dataSources/shutdown/iotdb_windows.sh new file mode 100644 index 0000000000..a7da9348f6 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/iotdb_windows.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +# usage:.sh + +set -e + +cd apache-iotdb-0.12.6-server-bin-$1/ +sh -c "sbin/stop-server.bat" +netstat -ano | grep ":$1" \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/mongodb.sh b/.github/scripts/dataSources/shutdown/mongodb.sh new file mode 100644 index 0000000000..0c94ee0dd3 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/mongodb.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 +PID_FILE="$SERVICE_DIR/mongodb/$PORT/mongodb.pid" + +PID=$(cat "$PID_FILE") +if kill -0 $PID 2>/dev/null; then + echo "Stopping MongoDB on port $PORT" + kill $PID + while kill -0 $PID 2>/dev/null; do + sleep 1 + done + echo "MongoDB stopped" +else + echo "MongoDB is not running on port $PORT" +fi +rm -f "$PID_FILE" + +sleep 3 \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/mongodb_macos.sh b/.github/scripts/dataSources/shutdown/mongodb_macos.sh new file mode 100644 index 0000000000..4982308ef3 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/mongodb_macos.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 +PID_FILE="$SERVICE_DIR_MAC/mongodb/$PORT/mongodb.pid" + +PID=$(cat "$PID_FILE") +if kill -0 $PID 2>/dev/null; then + echo "Stopping MongoDB on port $PORT" + kill $PID + while kill -0 $PID 2>/dev/null; do + sleep 1 + done + echo "MongoDB stopped" +else + echo "MongoDB is not running on port $PORT" +fi +rm -f "$PID_FILE" + +sleep 3 \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/mongodb_windows.sh b/.github/scripts/dataSources/shutdown/mongodb_windows.sh new file mode 100644 index 0000000000..d1efef5901 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/mongodb_windows.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +port=$1 +pid=$(netstat -ano | grep ":$port" | awk '{print $5}' | head -n 1) +if [ ! -z "$pid" ]; then + echo "Stopping mongodb on port $port (PID: $pid)" + taskkill //PID $pid //F +else + echo "No mongodb instance found running on port $port" +fi + +sleep 3 +netstat -ano | grep ":$port" \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/mysql.sh b/.github/scripts/dataSources/shutdown/mysql.sh new file mode 100644 index 0000000000..489083872f --- /dev/null +++ b/.github/scripts/dataSources/shutdown/mysql.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +#port=$1 +#if pgrep -f "mysqld.*port=$port" > /dev/null; then +# echo "Stopping MySQL on port $port" +# pkill -f "mysqld.*port=$port" +# sleep 2 +#else +# echo "MySQL on port $port is not running" +#fi + +port=$1 +PID_FILE="$SERVICE_DIR/mysql/mysql_$port.pid" + +PID=$(cat "$PID_FILE") +if kill -0 $PID 2>/dev/null; then + echo "Stopping mysql on port $PORT" + kill $PID + while kill -0 $PID 2>/dev/null; do + sleep 1 + done + echo "mysql stopped" +else + echo "mysql is not running on port $PORT" +fi +rm -f "$PID_FILE" + diff --git a/.github/scripts/dataSources/shutdown/mysql_macos.sh b/.github/scripts/dataSources/shutdown/mysql_macos.sh new file mode 100644 index 0000000000..4b51dae15d --- /dev/null +++ b/.github/scripts/dataSources/shutdown/mysql_macos.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +#port=$1 +#if pgrep -f "mysqld.*port=$port" > /dev/null; then +# echo "Stopping MySQL on port $port" +# pkill -f "mysqld.*port=$port" +# sleep 2 +#else +# echo "MySQL on port $port is not running" +#fi + +port=$1 +PID_FILE="$SERVICE_DIR_MAC/mysql/mysql_$port.pid" + +PID=$(cat "$PID_FILE") +if kill -0 $PID 2>/dev/null; then + echo "Stopping mysql on port $PORT" + kill $PID + while kill -0 $PID 2>/dev/null; do + sleep 1 + done + echo "mysql stopped" +else + echo "mysql is not running on port $PORT" +fi +rm -f "$PID_FILE" + diff --git a/.github/scripts/dataSources/shutdown/mysql_windows.sh b/.github/scripts/dataSources/shutdown/mysql_windows.sh new file mode 100644 index 0000000000..ac126f3967 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/mysql_windows.sh @@ -0,0 +1,50 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +port=$1 +#if tasklist | grep -q "mysqld.*$port"; then +# echo "Stopping MySQL on port $port" +# taskkill //F //PID $(tasklist | grep "mysqld.*$port" | awk '{print $2}') +# sleep 2 +#else +# echo "MySQL on port $port is not running" +#fi + +#pid=$(netstat -ano | grep ":$port" | awk '{print $5}' | head -n 1) +#if [ ! -z "$pid" ]; then +# echo "Stopping mysql on port $port (PID: $pid)" +# taskkill //PID $pid //F +# sleep 5 +#else +# echo "No mysql instance found running on port $port" +#fi +# +#netstat -ano | grep ":$port" + +port=$1 +pid=$(netstat -ano | grep ":$port" | awk '{print $5}' | head -n 1) +if [ ! -z "$pid" ]; then + echo "Stopping mysql on port $port (PID: $pid)" + taskkill //PID $pid //F +else + echo "No mysql instance found running on port $port" +fi + +sleep 3 +netstat -ano | grep ":$port" diff --git a/.github/scripts/dataSources/shutdown/postgresql.sh b/.github/scripts/dataSources/shutdown/postgresql.sh new file mode 100644 index 0000000000..e9726d7f70 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/postgresql.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PGDATA=$1 + +pg_ctl -D "$SERVICE_DIR/postgresql/${PGDATA}" stop + +lsof -i:$1 \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/postgresql_macos.sh b/.github/scripts/dataSources/shutdown/postgresql_macos.sh new file mode 100644 index 0000000000..5546ded5e4 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/postgresql_macos.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PGDATA=$1 + +pg_ctl -D ".github/actions/service/postgresql/${PGDATA}" stop + +lsof -i:$1 \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/postgresql_windows.sh b/.github/scripts/dataSources/shutdown/postgresql_windows.sh new file mode 100644 index 0000000000..fda520d8ac --- /dev/null +++ b/.github/scripts/dataSources/shutdown/postgresql_windows.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PGDATA=$1 + +pg_ctl -D ".github/actions/service/postgresql/${PGDATA}" stop + +netstat -ano | grep ":$1" \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/redis.sh b/.github/scripts/dataSources/shutdown/redis.sh new file mode 100644 index 0000000000..bd7fec0531 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/redis.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 + +pid=$(sudo lsof -t -i:$PORT) + +if [ -z "$pid" ]; then + echo "No process is running on port $PORT." + exit 0 +else + echo "Killing process $pid running on port $PORT." + sudo kill -9 $pid + echo "Process $pid has been killed." +fi \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/redis_macos.sh b/.github/scripts/dataSources/shutdown/redis_macos.sh new file mode 100644 index 0000000000..bd7fec0531 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/redis_macos.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +set -e + +PORT=$1 + +pid=$(sudo lsof -t -i:$PORT) + +if [ -z "$pid" ]; then + echo "No process is running on port $PORT." + exit 0 +else + echo "Killing process $pid running on port $PORT." + sudo kill -9 $pid + echo "Process $pid has been killed." +fi \ No newline at end of file diff --git a/.github/scripts/dataSources/shutdown/redis_windows.sh b/.github/scripts/dataSources/shutdown/redis_windows.sh new file mode 100644 index 0000000000..0afd11bfe1 --- /dev/null +++ b/.github/scripts/dataSources/shutdown/redis_windows.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# +# IGinX - the polystore system with high performance +# Copyright (C) Tsinghua University +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +set -e +port=$1 +pid=$(netstat -ano | grep ":$port" | awk '{print $5}' | head -n 1) +if [ ! -z "$pid" ]; then + echo "Stopping redis on port $port (PID: $pid)" + taskkill //PID $pid //F +else + echo "No redis instance found running on port $port" +fi + +sleep 3 +netstat -ano | grep ":$port" \ No newline at end of file diff --git a/.github/scripts/dataSources/startup/influxdb.sh b/.github/scripts/dataSources/startup/influxdb.sh index 3d051b8259..c1c9df968c 100644 --- a/.github/scripts/dataSources/startup/influxdb.sh +++ b/.github/scripts/dataSources/startup/influxdb.sh @@ -43,5 +43,5 @@ do # target path is also used in update/ script sh -c "sudo cp -r influxdb2-2.0.7-linux-amd64/ influxdb2-2.0.7-linux-amd64-$port/" - sudo sh -c "cd influxdb2-2.0.7-linux-amd64-$port/; nohup ./influxd run --bolt-path=~/.influxdbv2/influxd.bolt --engine-path=~/.influxdbv2/engine --http-bind-address=:$port --query-memory-bytes=20971520 &" + sudo sh -c "cd influxdb2-2.0.7-linux-amd64-$port/; nohup ./influxd run --bolt-path=~/.influxdbv2/influxd.bolt --engine-path=~/.influxdbv2/engine --http-bind-address=:$port --query-memory-bytes=20971520 & echo \$! > influxdb.pid" done \ No newline at end of file diff --git a/.github/scripts/dataSources/startup/influxdb_macos.sh b/.github/scripts/dataSources/startup/influxdb_macos.sh index a4774b06f4..380b97fc99 100644 --- a/.github/scripts/dataSources/startup/influxdb_macos.sh +++ b/.github/scripts/dataSources/startup/influxdb_macos.sh @@ -43,5 +43,5 @@ do # target path is also used in update/ script sh -c "sudo cp -r influxdb2-2.0.7-darwin-amd64/ influxdb2-2.0.7-darwin-amd64-$port/" - sudo sh -c "cd influxdb2-2.0.7-darwin-amd64-$port/; nohup ./influxd run --bolt-path=~/.influxdbv2/influxd.bolt --engine-path=~/.influxdbv2/engine --http-bind-address=:$port --query-memory-bytes=20971520 &" + sudo sh -c "cd influxdb2-2.0.7-darwin-amd64-$port/; nohup ./influxd run --bolt-path=~/.influxdbv2/influxd.bolt --engine-path=~/.influxdbv2/engine --http-bind-address=:$port --query-memory-bytes=20971520 & echo \$! > influxdb.pid" done \ No newline at end of file diff --git a/.github/workflows/DB-CE.yml b/.github/workflows/DB-CE.yml index f2762e7950..15e3044ef1 100644 --- a/.github/workflows/DB-CE.yml +++ b/.github/workflows/DB-CE.yml @@ -69,7 +69,7 @@ jobs: run: | mvn clean package -DskipTests -P-format -q - # 第 1 阶段测试开始========================================== + # 第 1 阶段测试开始========================================== - name: Prepare CapExp environment oriHasDataExpHasData uses: ./.github/actions/capacityExpansionUnionTest with: @@ -171,6 +171,10 @@ jobs: - name: Run testReadOnly shell: bash + env: + SERVICE_DIR: "/home/runner/work/IGinX/IGinX/.github/actions/service" + SERVICE_DIR_MAC: "/Users/runner/work/IGinX/IGinX/.github/actions/service" + SERVICE_DIR_WIN: "/d/a/IGinX/IGinX/.github/actions/service" run: | mvn test -q -Dtest=${{ matrix.DB-name }}CapacityExpansionIT#testReadOnly -DfailIfNoTests=false -P-format mvn test -q -Dtest=${FUNCTEST} -DfailIfNoTests=false -P-format diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java index 4785230a70..79d438e26a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java @@ -277,24 +277,22 @@ public Status removeHistoryDataSource(RemoveHistoryDataSourceReq req) { if (storageEngineMeta == null || storageEngineMeta.getDummyFragment() == null || storageEngineMeta.getDummyStorageUnit() == null) { - LOGGER.error("dummy storage engine {} does not exist.", info); - status.addToSubStatus(RpcUtils.FAILURE); + partialFailAndLog(status, String.format("dummy storage engine %s does not exist.", info)); continue; } if (!storageEngineMeta.isHasData()) { - LOGGER.error("dummy storage engine {} has no data.", info); - status.addToSubStatus(RpcUtils.FAILURE); + partialFailAndLog(status, String.format("dummy storage engine %s has no data.", info)); continue; } if (!storageEngineMeta.isReadOnly()) { - LOGGER.error("dummy storage engine {} is not read-only.", info); - status.addToSubStatus(RpcUtils.FAILURE); + partialFailAndLog(status, String.format("dummy storage engine %s is not read-only.", info)); continue; } // 更新 zk 以及缓存中的元数据信息 if (!metaManager.removeDummyStorageEngine(storageEngineMeta.getId())) { - LOGGER.error("unexpected error during removing dummy storage engine {}.", info); - status.addToSubStatus(RpcUtils.FAILURE); + partialFailAndLog( + status, + String.format("unexpected error during removing dummy storage engine %s.", info)); } } @@ -336,25 +334,25 @@ public Status addStorageEngines(AddStorageEnginesReq req) { Boolean.parseBoolean(extraParams.getOrDefault(Constants.IS_READ_ONLY, "true")); if (!isValidHost(ip)) { // IP 不合法 - LOGGER.error("ip {} is invalid.", ip); - status.addToSubStatus(RpcUtils.FAILURE); + partialFailAndLog(status, String.format("ip %s is invalid.", ip)); continue; } - if (isEmbeddedStorageEngine(type) && !isLocalHost(ip)) { - status.setCode(StatusCode.REDIRECT.getStatusCode()); - status.setMessage(ip + ":" + extraParams.get("iginx_port")); - LOGGER.warn("redirect to {}:{}.", ip, extraParams.get("iginx_port")); - return status; + if (isEmbeddedStorageEngine(type) && !isLocalHost(ip)) { // 非本地的文件系统引擎不可注册 + partialFailAndLog( + status, String.format("redirect to %s:%s.", ip, extraParams.get("iginx_port"))); + continue; } if (!hasData & readOnly) { // 无意义的存储引擎:不带数据且只读 - LOGGER.error("normal storage engine {} should not be read-only.", storageEngine); - status.addToSubStatus(RpcUtils.FAILURE); + partialFailAndLog( + status, + String.format("normal storage engine %s should not be read-only.", storageEngine)); continue; } - if (!checkEmbeddedStorageExtraParams(type, extraParams)) { - LOGGER.error( - "missing params or providing invalid ones for {} in statement.", storageEngine); - status.addToSubStatus(RpcUtils.FAILURE); + if (!checkEmbeddedStorageExtraParams(type, extraParams)) { // 参数不合法 + partialFailAndLog( + status, + String.format( + "missing params or providing invalid ones for %s in statement.", storageEngine)); continue; } String schemaPrefix = extraParams.get(Constants.SCHEMA_PREFIX); @@ -375,11 +373,13 @@ public Status addStorageEngines(AddStorageEnginesReq req) { if (status.isSetSubStatus()) { if (status.subStatus.size() == storageEngines.size()) { - status.setCode(RpcUtils.FAILURE.code); // 所有请求均失败 - status.setMessage("add storage engines failed"); + status + .setCode(RpcUtils.FAILURE.code) + .setMessage("No valid engine can be registered. Detailed information:\n"); + appendFullMsg(status); return status; } else { - status.setCode(RpcUtils.PARTIAL_SUCCESS.code); // 部分请求失败 + status.setCode(RpcUtils.PARTIAL_SUCCESS.code); // 部分请求失败,message待后续处理时设置 } } @@ -399,24 +399,59 @@ private void addStorageEngineMetas( // 检测是否与已有的存储引擎冲突 if (!hasChecked) { List currentStorageEngines = metaManager.getStorageEngineList(); - List duplicatedStorageEngines = new ArrayList<>(); + List storageEnginesToBeRemoved = new ArrayList<>(); for (StorageEngineMeta storageEngine : storageEngineMetas) { for (StorageEngineMeta currentStorageEngine : currentStorageEngines) { if (storageEngine.equals(currentStorageEngine)) { - duplicatedStorageEngines.add(storageEngine); - LOGGER.error("repeatedly add storage engine {}.", storageEngine); - status.addToSubStatus(RpcUtils.FAILURE); + // 存在相同数据库 + storageEnginesToBeRemoved.add(storageEngine); + partialFailAndLog( + status, String.format("repeatedly add storage engine %s.", storageEngine)); break; + } else if (storageEngine.isSameAddress(currentStorageEngine)) { + LOGGER.debug( + "same address engine {} for new engine {}.", currentStorageEngine, storageEngine); + // 已有相同IP、端口的数据库 + if (StorageManager.testEngineConnection(currentStorageEngine)) { + LOGGER.debug("old engine can be connected"); + // 已有的数据库仍可连接 + if (currentStorageEngine.contains(storageEngine)) { + // 已有数据库能够覆盖新注册的数据库,拒绝注册 + storageEnginesToBeRemoved.add(storageEngine); + partialFailAndLog( + status, + String.format( + "engine:%s would not be registered: duplicate data coverage detected. Please check existing engines.", + storageEngine)); + } + } else { + LOGGER.debug("old engine cannot be connected"); + // 已有的数据库无法连接了,若是只读,直接删除 + if (currentStorageEngine.isReadOnly() && currentStorageEngine.isHasData()) { + metaManager.removeDummyStorageEngine(currentStorageEngine.getId()); + LOGGER.warn( + "Existing dummy Storage engine {} cannot be connected and will be removed.", + currentStorageEngine); + } else { + // 并非只读,需要手动操作,拒绝注册同地址引擎 + storageEnginesToBeRemoved.add(storageEngine); + partialFailAndLog( + status, + String.format( + "Existing Storage engine %s cannot be connected. New engine %s will not be registered.", + currentStorageEngine, storageEngine)); + } + } } } } - if (!duplicatedStorageEngines.isEmpty()) { - storageEngineMetas.removeAll(duplicatedStorageEngines); - if (!storageEngineMetas.isEmpty()) { - status.setCode(RpcUtils.PARTIAL_SUCCESS.code); - } else { - status.setCode(RpcUtils.FAILURE.code); - status.setMessage("repeatedly add storage engine"); + if (!storageEnginesToBeRemoved.isEmpty()) { + storageEngineMetas.removeAll(storageEnginesToBeRemoved); + if (storageEngineMetas.isEmpty()) { + status + .setCode(RpcUtils.FAILURE.code) + .setMessage("No valid engine can be registered. Detailed information:\n"); + appendFullMsg(status); return; } } @@ -427,7 +462,19 @@ private void addStorageEngineMetas( .get(storageEngineMetas.size() - 1) .setNeedReAllocate(true); // 如果这批节点不是只读的话,每一批最后一个是 true,表示需要进行扩容 } - for (StorageEngineMeta meta : storageEngineMetas) { + + Iterator iterator = storageEngineMetas.iterator(); + while (iterator.hasNext()) { + // 首先去掉ip不合要求的本地引擎(本地引擎必须在同地址的IGinX节点注册) + StorageEngineMeta meta = iterator.next(); + if (isEmbeddedStorageEngine(meta.getStorageEngine())) { + if (!isLocal(meta)) { + partialFailAndLog(status, String.format("storage engine %s needs to be local.", meta)); + iterator.remove(); + continue; + } + } + // 然后设置dummy信息 if (meta.isHasData()) { String dataPrefix = meta.getDataPrefix(); String schemaPrefix = meta.getSchemaPrefix(); @@ -435,12 +482,13 @@ private void addStorageEngineMetas( Pair boundary = StorageManager.getBoundaryOfStorage(meta, dataPrefix); if (boundary == null) { - status.setCode(RpcUtils.FAILURE.code); - status.setMessage( + partialFailAndLog( + status, String.format( - "Failed to process dummy storage engine %s. Please check params:%s;%s.", + "Failed to read data in dummy storage engine %s. Please check params:%s;%s.", meta.getStorageEngine(), meta, meta.getExtraParams())); - return; + iterator.remove(); + continue; } LOGGER.info("boundary for {}: {}", meta, boundary); FragmentMeta dummyFragment; @@ -459,61 +507,57 @@ private void addStorageEngineMetas( } } - // init local filesystem before adding to meta - // exclude remote filesystem - List localMetas = new ArrayList<>(); - List otherMetas = new ArrayList<>(); - for (StorageEngineMeta meta : storageEngineMetas) { - if (isEmbeddedStorageEngine(meta.getStorageEngine())) { - if (!isLocal(meta)) { - LOGGER.error("storage engine {} needs to be local.", meta); - status.addToSubStatus(RpcUtils.FAILURE); - } else { - localMetas.add(meta); - } - } else { - otherMetas.add(meta); - } - } - - // TODO: 下面两个循环疑似可以合并在一起 + iterator = storageEngineMetas.iterator(); StorageManager storageManager = PhysicalEngineImpl.getInstance().getStorageManager(); - for (StorageEngineMeta meta : otherMetas) { + while (iterator.hasNext()) { + StorageEngineMeta meta = iterator.next(); + // 为什么本地文件系统必须先init instance,再加入meta,storageManager:当数据源信息被加入meta,集群内其他节点都会立刻去尝试连接本地文件引擎的服务 + // 因此必须先init开启服务,然后在加入meta时获取唯一数据源id,再将id和引擎送入storageManager进行登记 + // 其他类型的引擎也需要先init初始化,以在修改元数据前确保引擎可用 IStorage storage = StorageManager.initStorageInstance(meta); if (storage == null) { - status.addToSubStatus( - RpcUtils.status( - StatusCode.STATEMENT_EXECUTION_ERROR, - String.format("init storage engine %s failed", meta))); + partialFailAndLog(status, String.format("init storage engine %s failed", meta)); + iterator.remove(); continue; } if (!metaManager.addStorageEngines(Collections.singletonList(meta))) { - LOGGER.error("add storage engine {} failed.", meta); - status.addToSubStatus(RpcUtils.FAILURE); + partialFailAndLog(status, String.format("add storage engine %s failed.", meta)); + iterator.remove(); continue; } storageManager.addStorage(meta, storage); } - for (StorageEngineMeta meta : localMetas) { - IStorage storage = StorageManager.initStorageInstance(meta); - if (storage == null) { - status.addToSubStatus( - RpcUtils.status( - StatusCode.STATEMENT_EXECUTION_ERROR, - String.format("init storage engine %s failed", meta))); - continue; - } - if (!metaManager.addStorageEngines(Collections.singletonList(meta))) { - LOGGER.error("add storage engine {} failed.", meta); - status.addToSubStatus(RpcUtils.FAILURE); - continue; + if (status.isSetSubStatus()) { + if (storageEngineMetas.isEmpty()) { + // 所有请求均失败 + status + .setCode(RpcUtils.FAILURE.code) + .setMessage("No valid engine can be registered. Detailed information:\n"); + appendFullMsg(status); + } else { + // 部分请求失败 + status + .setCode(RpcUtils.PARTIAL_SUCCESS.code) + .setMessage("Some of the engines cannot be registered. Detailed information:\n"); + appendFullMsg(status); } - storageManager.addStorage(meta, storage); } - if (status.isSetSubStatus()) { - status.setCode(RpcUtils.FAILURE.code); - status.setMessage("add storage engines failed"); + } + + /** add failed sub status and log the message */ + private static void partialFailAndLog(Status status, String errMsg) { + LOGGER.error(errMsg); + status.addToSubStatus( + new Status(StatusCode.STATEMENT_EXECUTION_ERROR.getStatusCode()).setMessage(errMsg)); + } + + /** append messages of sub status to the message of main status */ + private static void appendFullMsg(Status status) { + StringBuilder msg = new StringBuilder(status.getMessage()); + for (Status subStatus : status.getSubStatus()) { + msg.append("* ").append(subStatus.getMessage()).append("\n"); } + status.setMessage(String.valueOf(msg)); } /** This function is only for read-only dummy, temporarily */ diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/IStorage.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/IStorage.java index a29ae04223..ab0fc986b2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/IStorage.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/IStorage.java @@ -29,11 +29,15 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; +import cn.edu.tsinghua.iginx.metadata.entity.StorageEngineMeta; import cn.edu.tsinghua.iginx.utils.Pair; import java.util.List; import java.util.Set; public interface IStorage { + /** 测试数据库连接 */ + boolean testConnection(StorageEngineMeta meta); + /** 对非叠加分片查询数据 */ TaskExecuteResult executeProject(Project project, DataArea dataArea); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageManager.java index fac52441f1..5f4a039d9c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageManager.java @@ -56,6 +56,18 @@ public StorageManager(List metaList) { } } + /** 仅适用于已经被注册的引擎 */ + public static boolean testEngineConnection(StorageEngineMeta meta) { + long id = meta.getId(); + if (id < 0) { + LOGGER.error("Storage engine id must be >= 0"); + return false; + } + LOGGER.debug("Testing connection for id={}, {}", id, meta); + LOGGER.debug(storageMap.keySet().toString()); + return storageMap.get(id).k.testConnection(meta); + } + public static Pair getBoundaryOfStorage(StorageEngineMeta meta) { return getBoundaryOfStorage(meta, null); } @@ -87,7 +99,7 @@ public static Pair getBoundaryOfStorage( try { storage.release(); } catch (Exception e) { - LOGGER.error("release session pool failure!"); + LOGGER.error("release session pool failure!", e); } } } @@ -118,18 +130,23 @@ private boolean initStorage(StorageEngineMeta meta, IStorage storage) { StorageEngineType engine = meta.getStorageEngine(); long id = meta.getId(); try { - if (!storageMap.containsKey(id)) { - // 启动一个派发线程池 - ThreadPoolExecutor dispatcher = - new ThreadPoolExecutor( - ConfigDescriptor.getInstance() - .getConfig() - .getPhysicalTaskThreadPoolSizePerStorage(), - Integer.MAX_VALUE, - 60L, - TimeUnit.SECONDS, - new SynchronousQueue<>()); - storageMap.put(meta.getId(), new Pair<>(storage, dispatcher)); + if (storage.testConnection(meta)) { + if (!storageMap.containsKey(id)) { + // 启动一个派发线程池 + ThreadPoolExecutor dispatcher = + new ThreadPoolExecutor( + ConfigDescriptor.getInstance() + .getConfig() + .getPhysicalTaskThreadPoolSizePerStorage(), + Integer.MAX_VALUE, + 60L, + TimeUnit.SECONDS, + new SynchronousQueue<>()); + storageMap.put(meta.getId(), new Pair<>(storage, dispatcher)); + } + } else { + LOGGER.error("Connection test for {}:{} failed", engine, meta); + return false; } } catch (Exception e) { LOGGER.error("unexpected error when process engine {}: {}", engine, e); @@ -197,8 +214,15 @@ public static IStorage initStorageInstance(StorageEngineMeta meta) { String driver = drivers.get(engine); ClassLoader loader = classLoaders.get(engine); try { - return (IStorage) - loader.loadClass(driver).getConstructor(StorageEngineMeta.class).newInstance(meta); + IStorage storage = + (IStorage) + loader.loadClass(driver).getConstructor(StorageEngineMeta.class).newInstance(meta); + if (storage.testConnection(meta)) { + return storage; + } else { + LOGGER.error("Connection test for {}:{} failed", engine, meta); + return null; + } } catch (ClassNotFoundException e) { LOGGER.error("load class {} for engine {} failure: {}", driver, engine, e); return null; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageEngineMeta.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageEngineMeta.java index 991329ba1c..dc38c7bd89 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageEngineMeta.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageEngineMeta.java @@ -308,17 +308,51 @@ public boolean equals(Object o) { && Objects.equals(dataPrefix, that.getDataPrefix()); } + public boolean isSameAddress(StorageEngineMeta that) { + return (ip.equals(that.ip) || (isLocalHost(ip) && isLocalHost(that.ip))) && port == that.port; + } + + /** + * contains 表示该数据库的功能完全覆盖另一个数据库,满足以下条件:对方数据库为只读;两数据库的ip、端口、类型、schema_prefix相同; 该数据库没有data_prefix + */ + public boolean contains(StorageEngineMeta that) { + return that.isReadOnly() + && (ip.equals(that.ip) || (isLocalHost(ip) && isLocalHost(that.ip))) + && port == that.port + && storageEngine == that.storageEngine + && Objects.equals(schemaPrefix, that.getSchemaPrefix()) + && dataPrefix == null; + } + @Override public String toString() { return "StorageEngineMeta {" + + "id='" + + getId() + + "', " + "ip='" + ip - + '\'' - + ", port=" + + "', " + + "port='" + port - + ", type='" + + "', " + + "type='" + storageEngine.toString() - + '\'' - + '}'; + + "', " + + "has_data='" + + (hasData ? "true" : "false") + + "', " + + "read_only='" + + (readOnly ? "true" : "false") + + "', " + + "schema_prefix='" + + (schemaPrefix != null ? schemaPrefix : "NULL") + + "', " + + "data_prefix='" + + (dataPrefix != null ? dataPrefix : "NULL") + + "', " + + "extra_params='" + + (extraParams.toString()) + + "', "; } } diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/FileSystemStorage.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/FileSystemStorage.java index 873b093e16..20acfd86d9 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/FileSystemStorage.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/FileSystemStorage.java @@ -67,6 +67,9 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import javax.annotation.Nullable; +import org.apache.thrift.TException; +import org.apache.thrift.transport.TSocket; +import org.apache.thrift.transport.TTransport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -173,6 +176,17 @@ static Config toConfig(StorageEngineMeta meta) throws StorageInitializationExcep return config; } + @Override + public boolean testConnection(StorageEngineMeta meta) { + try (TTransport transport = new TSocket(meta.getIp(), meta.getPort())) { + transport.open(); + return true; + } catch (TException e) { + LOGGER.error("Cannot establish thrift server on {}, {}", meta.getIp(), meta.getPort()); + return false; + } + } + @Override public TaskExecuteResult executeProject(Project project, DataArea dataArea) { return executeQuery(unitOf(dataArea), getDataTargetOf(project, dataArea), null); diff --git a/dataSource/influxdb/pom.xml b/dataSource/influxdb/pom.xml index 4d598e043e..fd132861dd 100644 --- a/dataSource/influxdb/pom.xml +++ b/dataSource/influxdb/pom.xml @@ -36,6 +36,11 @@ com.influxdb influxdb-client-java + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + 2.0.0 + diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java index 1ce3766620..d098f01fba 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java @@ -131,7 +131,7 @@ public InfluxDBStorage(StorageEngineMeta meta) throws StorageInitializationExcep if (!meta.getStorageEngine().equals(StorageEngineType.influxdb)) { throw new StorageInitializationException("unexpected database: " + meta.getStorageEngine()); } - if (!testConnection()) { + if (!testConnection(this.meta)) { throw new StorageInitializationException("cannot connect to " + meta); } Map extraParams = meta.getExtraParams(); @@ -156,18 +156,25 @@ public InfluxDBStorage(StorageEngineMeta meta) throws StorageInitializationExcep } } - private boolean testConnection() { + @Override + public boolean testConnection(StorageEngineMeta meta) { Map extraParams = meta.getExtraParams(); + LOGGER.debug("testing influxdb {}", extraParams.toString()); String url = extraParams.get("url"); - try { - InfluxDBClient client = - InfluxDBClientFactory.create(url, extraParams.get("token").toCharArray()); - client.close(); + try (InfluxDBClient client = + InfluxDBClientFactory.create(url, extraParams.get("token").toCharArray())) { + LOGGER.debug("start testing"); + if (client.ping()) { + LOGGER.debug("influxdb connection success:{}", meta); + return true; + } else { + LOGGER.error("influxdb connection failed:{}", meta); + return false; + } } catch (Exception e) { LOGGER.error("test connection error: ", e); return false; } - return true; } private void reloadHistoryData() { diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java index 0215cb19b5..44679397a9 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java @@ -132,13 +132,14 @@ public IoTDBStorage(StorageEngineMeta meta) throws StorageInitializationExceptio if (!meta.getStorageEngine().equals(StorageEngineType.iotdb12)) { throw new StorageInitializationException("unexpected database: " + meta.getStorageEngine()); } - if (!testConnection()) { + if (!testConnection(this.meta)) { throw new StorageInitializationException("cannot connect to " + meta); } sessionPool = createSessionPool(); } - private boolean testConnection() { + @Override + public boolean testConnection(StorageEngineMeta meta) { Map extraParams = meta.getExtraParams(); String username = extraParams.getOrDefault(USERNAME, DEFAULT_USERNAME); String password = extraParams.getOrDefault(PASSWORD, DEFAULT_PASSWORD); diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/MongoDBStorage.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/MongoDBStorage.java index b323f292e8..0917c3d7ac 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/MongoDBStorage.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/MongoDBStorage.java @@ -78,6 +78,7 @@ import org.bson.BsonDocument; import org.bson.BsonInt64; import org.bson.BsonValue; +import org.bson.Document; import org.bson.conversions.Bson; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -142,6 +143,31 @@ private MongoClient connect(String connectionString) { return MongoClients.create(settings); } + @Override + public boolean testConnection(StorageEngineMeta meta) { + String defaultConnection = String.format("mongodb://%s:%d", meta.getIp(), meta.getPort()); + String connectionString = + meta.getExtraParams().getOrDefault(CONNECTION_STRING, defaultConnection); + + MongoClientSettings settings = + MongoClientSettings.builder() + .applyToConnectionPoolSettings( + builder -> + builder + .maxWaitTime(MAX_WAIT_TIME, TimeUnit.SECONDS) + .maxSize(SESSION_POOL_MAX_SIZE) + .maxConnectionIdleTime(60, TimeUnit.SECONDS)) + .applyConnectionString(new ConnectionString(connectionString)) + .build(); + try (MongoClient mongoClient = MongoClients.create(settings)) { + mongoClient.getDatabase("admin").runCommand(new Document("ping", 1)); + return true; + } catch (Exception e) { + LOGGER.error("Failed to connect MongoDB {}: e", meta, e); + return false; + } + } + @Override public boolean isSupportProjectWithSelect() { return true; diff --git a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/RedisStorage.java b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/RedisStorage.java index fb21548a17..66093fe4b3 100644 --- a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/RedisStorage.java +++ b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/RedisStorage.java @@ -145,6 +145,17 @@ private Jedis getDummyConnection() { return jedis; } + @Override + public boolean testConnection(StorageEngineMeta meta) { + try (Jedis jedis = new Jedis(meta.getIp(), meta.getPort())) { + jedis.ping(); // 仅用于测试连接 + return true; + } catch (Exception e) { + LOGGER.error("Failed to connect Redis {}: e", meta, e); + return false; + } + } + @Override public boolean isSupportProjectWithSelect() { return true; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java index a1f4762f82..8aa98057c3 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java @@ -179,7 +179,7 @@ public RelationalStorage(StorageEngineMeta meta) throws StorageInitializationExc } catch (RelationalTaskExecuteFailureException e) { throw new StorageInitializationException("cannot build relational meta: ", e); } - if (!testConnection()) { + if (!testConnection(this.meta)) { throw new StorageInitializationException("cannot connect to " + meta.toString()); } filterTransformer = new FilterTransformer(relationalMeta); @@ -241,7 +241,8 @@ private void buildRelationalMeta() throws RelationalTaskExecuteFailureException } } - private boolean testConnection() { + @Override + public boolean testConnection(StorageEngineMeta meta) { Map extraParams = meta.getExtraParams(); String username = extraParams.get(USERNAME); String password = extraParams.get(PASSWORD); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java index 41ce7ffcd7..2a08fda402 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java @@ -70,6 +70,10 @@ public abstract class BaseCapacityExpansionIT { protected static final String updateParamsScriptDir = ".github/scripts/dataSources/update/"; + protected static final String shutdownScriptDir = ".github/scripts/dataSources/shutdown/"; + + protected static final String restartScriptDir = ".github/scripts/dataSources/restart/"; + protected static BaseHistoryDataGenerator generator; public BaseCapacityExpansionIT( @@ -86,6 +90,18 @@ protected String addStorageEngine( String dataPrefix, String schemaPrefix, String extraParams) { + return this.addStorageEngine( + port, hasData, isReadOnly, dataPrefix, schemaPrefix, extraParams, false); + } + + protected String addStorageEngine( + int port, + boolean hasData, + boolean isReadOnly, + String dataPrefix, + String schemaPrefix, + String extraParams, + boolean noError) { try { StringBuilder statement = new StringBuilder(); statement.append("ADD STORAGEENGINE (\"127.0.0.1\", "); @@ -128,16 +144,28 @@ protected String addStorageEngine( session.executeSql(statement.toString()); return null; } catch (SessionException e) { - LOGGER.warn( - "add storage engine:{} port:{} hasData:{} isReadOnly:{} dataPrefix:{} schemaPrefix:{} extraParams:{} failure: ", - type.name(), - port, - hasData, - isReadOnly, - dataPrefix, - schemaPrefix, - extraParams, - e); + if (noError) { + LOGGER.warn( + "add storage engine:{} port:{} hasData:{} isReadOnly:{} dataPrefix:{} schemaPrefix:{} extraParams:{} failure: ", + type.name(), + port, + hasData, + isReadOnly, + dataPrefix, + schemaPrefix, + extraParams); + } else { + LOGGER.warn( + "add storage engine:{} port:{} hasData:{} isReadOnly:{} dataPrefix:{} schemaPrefix:{} extraParams:{} failure: ", + type.name(), + port, + hasData, + isReadOnly, + dataPrefix, + schemaPrefix, + extraParams, + e); + } return e.getMessage(); } } @@ -251,14 +279,18 @@ public void testReadOnly() throws SessionException { testQueryHistoryDataOriHasData(); // 测试只读节点的参数修改 testUpdateEngineParams(); + testDatabaseShutdown(); + // 测试参数错误的只读节点扩容 - testInvalidDummyParams(readOnlyPort, true, true, null, READ_ONLY_SCHEMA_PREFIX); + testInvalidEngineParams(readOnlyPort, true, true, null, READ_ONLY_SCHEMA_PREFIX); // 扩容只读节点 addStorageEngineInProgress(readOnlyPort, true, true, null, READ_ONLY_SCHEMA_PREFIX); // 查询扩容只读节点的历史数据,结果不为空 testQueryHistoryDataReadOnly(); - // 测试参数错误的可写节点扩容 - testInvalidDummyParams(expPort, true, false, null, EXP_SCHEMA_PREFIX); + + // 测试参数错误的可写节点扩容,也需要测试非dummy情况 + testInvalidEngineParams(expPort, true, false, null, EXP_SCHEMA_PREFIX); + testInvalidEngineParams(expPort, false, false, null, EXP_SCHEMA_PREFIX); // 扩容可写节点 addStorageEngineInProgress(expPort, true, false, null, EXP_SCHEMA_PREFIX); // 查询扩容可写节点的历史数据,结果不为空 @@ -284,12 +316,12 @@ public void testReadOnly() throws SessionException { queryExtendedColDummy(); } - protected void testInvalidDummyParams( + protected void testInvalidEngineParams( int port, boolean hasData, boolean isReadOnly, String dataPrefix, String schemaPrefix) { // wrong params String res; for (String params : wrongExtraParams) { - res = addStorageEngine(port, hasData, isReadOnly, dataPrefix, schemaPrefix, params); + res = addStorageEngine(port, hasData, isReadOnly, dataPrefix, schemaPrefix, params, true); if (res != null) { LOGGER.info( "Successfully rejected dummy engine with wrong params: {}; {}. msg: {}", @@ -303,7 +335,9 @@ protected void testInvalidDummyParams( } // wrong port - res = addStorageEngine(port + 999, hasData, isReadOnly, dataPrefix, schemaPrefix, extraParams); + res = + addStorageEngine( + port + 999, hasData, isReadOnly, dataPrefix, schemaPrefix, extraParams, true); if (res != null) { LOGGER.info( "Successfully rejected dummy engine with wrong port: {}; params: {}. msg: {}", @@ -376,12 +410,56 @@ protected void testUpdateEngineParams() throws SessionException { restoreParams(readOnlyPort); } - /** 这个方法需要实现:通过脚本修改port对应数据源的可变参数,如密码等 */ + /** 测试注册时发现原ip、端口的数据库失效的情形 */ + protected void testDatabaseShutdown() { + String res; + // 当原数据库是只读,注册时应该发现原数据库失效并删除原数据库 + addStorageEngineInProgress(readOnlyPort, true, true, null, READ_ONLY_SCHEMA_PREFIX); + shutdownDatabase(readOnlyPort); + + // 添加一个ip、端口、类型相同的数据库,修改schema prefix以避免被认为是重复注册,此时应该发现该数据库失效,移除原数据库并拒绝注册新的 + res = addStorageEngine(readOnlyPort, true, true, null, "nonexistdata", extraParams, false); + if (res.contains("Failed to read data in dummy storage engine")) { + LOGGER.info("Successfully rejected dead datasource."); + } else { + LOGGER.error("Dead datasource shouldn't be added."); + fail(); + } + // 只剩最开始的数据库 + testShowClusterInfo(1); + + // 重新启动原数据库 + startDatabase(readOnlyPort); + } + + /** mode: T:shutdown; F:restart */ + protected void shutOrRestart(int port, boolean mode, String DBName) { + String dir = mode ? shutdownScriptDir : restartScriptDir; + String scriptPath = dir + DBName + ".sh"; + String os = System.getProperty("os.name").toLowerCase(); + if (os.contains("mac")) { + scriptPath = dir + DBName + "_macos.sh"; + } else if (os.contains("win")) { + scriptPath = dir + DBName + "_windows.sh"; + } + int res = executeShellScript(scriptPath, String.valueOf(port)); + if (res != 0) { + fail("Fail to " + (mode ? "shutdown" : "restart") + " " + DBName + port); + } + } + + /** 通过脚本修改port对应数据源的可变参数,如密码等 */ protected abstract void updateParams(int port); - /** 这个方法需要实现:通过脚本恢复updateParams中修改的可变参数 */ + /** 通过脚本恢复updateParams中修改的可变参数 */ protected abstract void restoreParams(int port); + /** 暂时使对应port的数据库宕机 */ + protected abstract void shutdownDatabase(int port); + + /** 重新开启对应port的数据库 */ + protected abstract void startDatabase(int port); + protected void queryExtendedKeyDummy() { // ori // extended key queryable @@ -556,22 +634,29 @@ private void testAddAndRemoveStorageEngineWithPrefix() { SQLTestTools.executeAndCompare(session, statement, pathList, REPEAT_EXP_VALUES_LIST1); addStorageEngine(expPort, true, true, dataPrefix1, schemaPrefix2, extraParams); - addStorageEngine(expPort, true, true, dataPrefix1, null, extraParams); - testShowClusterInfo(5); + testShowClusterInfo(4); // 如果是重复添加,则报错 - String res = addStorageEngine(expPort, true, true, dataPrefix1, null, extraParams); + String res = + addStorageEngine(expPort, true, true, dataPrefix1, schemaPrefix2, extraParams, false); if (res != null && !res.contains("repeatedly add storage engine")) { fail(); } - testShowClusterInfo(5); + testShowClusterInfo(4); + + // data_prefix存在包含关系 + res = addStorageEngine(expPort, true, true, dataPrefix1, null, extraParams, false); + if (res != null && !res.contains("duplicate data coverage detected")) { + fail(); + } + testShowClusterInfo(4); addStorageEngine(expPort, true, true, dataPrefix1, schemaPrefix3, extraParams); // 这里是之后待测试的点,如果添加包含关系的,应当报错。 // res = addStorageEngine(expPort, true, true, "nt.wf03.wt01", "p3"); // 添加相同 schemaPrefix,不同 dataPrefix addStorageEngine(expPort, true, true, dataPrefix2, schemaPrefix3, extraParams); - testShowClusterInfo(7); + testShowClusterInfo(6); // 添加节点 dataPrefix = dataPrefix1 && schemaPrefix = p1 后查询 statement = "select wt01.status2 from p1.nt.wf03;"; @@ -602,7 +687,7 @@ private void testAddAndRemoveStorageEngineWithPrefix() { new RemovedStorageEngineInfo("127.0.0.1", expPort, "p3" + schemaPrefixSuffix, dataPrefix1)); try { session.removeHistoryDataSource(removedStorageEngineList); - testShowClusterInfo(5); + testShowClusterInfo(4); } catch (SessionException e) { LOGGER.error("remove history data source through session api error: ", e); } @@ -627,7 +712,6 @@ private void testAddAndRemoveStorageEngineWithPrefix() { String.format(removeStatement, expPort, "p1" + schemaPrefixSuffix, dataPrefix1)); session.executeSql( String.format(removeStatement, expPort, "p3" + schemaPrefixSuffix, dataPrefix2)); - session.executeSql(String.format(removeStatement, expPort, "", dataPrefix1)); testShowClusterInfo(2); } catch (SessionException e) { LOGGER.error("remove history data source through sql error: ", e); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java index 507f7ca401..32d69be362 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java @@ -60,9 +60,14 @@ public static String getAddStorageParams(Map params) { // skip this test @Override - protected void testInvalidDummyParams( + protected void testInvalidEngineParams( int port, boolean hasData, boolean isReadOnly, String dataPrefix, String schemaPrefix) { - LOGGER.info("filesystem skips test for wrong dummy engine params."); + LOGGER.info("filesystem skips test for wrong engine params."); + } + + @Override + protected void testDatabaseShutdown() { + LOGGER.info("filesystem skips test for shutting down data sources."); } @Override @@ -71,6 +76,12 @@ protected void updateParams(int port) {} @Override protected void restoreParams(int port) {} + @Override + protected void shutdownDatabase(int port) {} + + @Override + protected void startDatabase(int port) {} + @Override public void testShowColumns() { super.testShowColumns(); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBCapacityExpansionIT.java index 3a089246c7..f509b71fc6 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBCapacityExpansionIT.java @@ -58,6 +58,16 @@ protected void updateParams(int port) { changeParams(port, "newOrg"); } + @Override + protected void shutdownDatabase(int port) { + shutOrRestart(port, true, "influxdb"); + } + + @Override + protected void startDatabase(int port) { + shutOrRestart(port, false, "influxdb"); + } + @Override protected void restoreParams(int port) { changeParams(port, "testOrg"); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12CapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12CapacityExpansionIT.java index 1f52039ddb..4d005a2d0a 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12CapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12CapacityExpansionIT.java @@ -54,6 +54,16 @@ protected void restoreParams(int port) { changeParams(port, "newPassword", "root"); } + @Override + protected void shutdownDatabase(int port) { + shutOrRestart(port, true, "iotdb"); + } + + @Override + protected void startDatabase(int port) { + shutOrRestart(port, false, "iotdb"); + } + private void changeParams(int port, String oldPw, String newPw) { String scriptPath = updateParamsScriptDir + "iotdb.sh"; String os = System.getProperty("os.name").toLowerCase(); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java index 1b6bf7b3c7..73f73b8016 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java @@ -499,4 +499,14 @@ protected void updateParams(int port) {} @Override protected void restoreParams(int port) {} + + @Override + protected void shutdownDatabase(int port) { + shutOrRestart(port, true, "mongodb"); + } + + @Override + protected void startDatabase(int port) { + shutOrRestart(port, false, "mongodb"); + } } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java index b518d20e1d..8e80bdc3fe 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java @@ -60,6 +60,16 @@ protected void restoreParams(int port) { changeParams(port, "newPassword", null); } + @Override + protected void shutdownDatabase(int port) { + shutOrRestart(port, true, "mysql"); + } + + @Override + protected void startDatabase(int port) { + shutOrRestart(port, false, "mysql"); + } + private void changeParams(int port, String oldPw, String newPw) { String scriptPath = updateParamsScriptDir + "mysql.sh"; String mode = oldPw == null ? "set" : "unset"; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java index 653cec7052..3238edb836 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java @@ -168,6 +168,16 @@ protected void restoreParams(int port) { changeParams(port, "newPassword", "postgres"); } + @Override + protected void shutdownDatabase(int port) { + shutOrRestart(port, true, "postgresql"); + } + + @Override + protected void startDatabase(int port) { + shutOrRestart(port, false, "postgresql"); + } + private void changeParams(int port, String oldPw, String newPw) { String scriptPath = updateParamsScriptDir + "postgresql.sh"; String os = System.getProperty("os.name").toLowerCase(); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java index 540d6d62b8..93b5c4c080 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java @@ -227,4 +227,14 @@ protected void updateParams(int port) {} @Override protected void restoreParams(int port) {} + + @Override + protected void shutdownDatabase(int port) { + shutOrRestart(port, true, "redis"); + } + + @Override + protected void startDatabase(int port) { + shutOrRestart(port, false, "redis"); + } } From 130d7c5b05778a919d8bbb951162b1b2aabd6be6 Mon Sep 17 00:00:00 2001 From: An Qi Date: Mon, 21 Oct 2024 12:33:21 +0800 Subject: [PATCH 13/33] chore: make building iginx easier (#476) * docs: add FAQ to quickstart to explain how to resolve problems The following artifacts could not be resolved: cn.edu.tsinghua.iginx:parquet-file * chore: fix `mvn clean install -U -Dmaven.test.skip=true` * build: fix session_py format --------- Co-authored-by: Yuqing Zhu --- dataSource/filesystem/pom.xml | 11 -- .../IGinXBySource-EnglishVersion.md | 42 +++++ docs/quickStarts/IGinXBySource.md | 39 ++++ .../IGinXBySource-EnglishVersion.md | 41 +++++ docs/quickStarts_Parquet/IGinXBySource.md | 39 ++++ pom.xml | 171 +++++++++--------- session_py/pom.xml | 39 ++++ test/pom.xml | 7 - .../FileSystemHistoryDataGenerator.java | 2 +- .../expansion/utils/DataViewGenerator.java | 105 +++++++++++ thrift/pom.xml | 2 +- 11 files changed, 395 insertions(+), 103 deletions(-) create mode 100644 session_py/pom.xml create mode 100644 test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/DataViewGenerator.java diff --git a/dataSource/filesystem/pom.xml b/dataSource/filesystem/pom.xml index 74901f7bf9..0f403499ec 100644 --- a/dataSource/filesystem/pom.xml +++ b/dataSource/filesystem/pom.xml @@ -97,17 +97,6 @@ org.apache.maven.plugins maven-antrun-plugin - - org.apache.maven.plugins - maven-jar-plugin - - - - test-jar - - - - org.apache.maven.plugins maven-compiler-plugin diff --git a/docs/quickStarts/IGinXBySource-EnglishVersion.md b/docs/quickStarts/IGinXBySource-EnglishVersion.md index 0591557544..ced23187f0 100644 --- a/docs/quickStarts/IGinXBySource-EnglishVersion.md +++ b/docs/quickStarts/IGinXBySource-EnglishVersion.md @@ -566,3 +566,45 @@ session.closeSession(); ``` For the full version of the code, please refer to: https://github.com/IGinX-THU/IGinX/blob/main/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionExample.java + +## FAQ + +### Unable to find parquet-file dependency + +When compiling IGinX with Maven, you may encounter the following error: + +``` +The following artifacts could not be resolved: cn.edu.tsinghua.iginx:parquet-file +``` + +This is because the parquet-file dependency required by IGinX is not published to the Maven Central Repository but is hosted on GitHub Pages. Therefore, we need to add the following repository address to the pom.xml file: + +```xml + + + parquet-file + IGinX GitHub repository + https://iginx-thu.github.io/Parquet/maven-repo + + +``` + +If you have configured a mirror, for example: + +```xml + + aliyunmaven + central + Aliyun Public Repository + https://maven.aliyun.com/repository/central + +``` + +Note that the value of mirrorOf is central, which means that only when accessing the Maven Central Repository will the Aliyun mirror be used. +If you configure it as *, it means that all Maven repositories will use the Aliyun mirror, which will cause the parquet-file dependency required +by IGinX to fail to download. + +If you are unable to download the dependency due to network issues, you can try using a proxy. +Additionally, you can manually download the dependency and then use Maven's install command to install it to +the local repository. For more details, see: https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html + diff --git a/docs/quickStarts/IGinXBySource.md b/docs/quickStarts/IGinXBySource.md index 396389bb03..7195d01863 100644 --- a/docs/quickStarts/IGinXBySource.md +++ b/docs/quickStarts/IGinXBySource.md @@ -561,3 +561,42 @@ session.closeSession(); ``` 完整版使用代码可以参考:https://github.com/IGinX-THU/IGinX/blob/main/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionExample.java + +## 常见问题 + +### 找不到 parquet-file 依赖 + +在使用 Maven 编译 IGinX 时,可能会遇到如下的错误: + +```shell +The following artifacts could not be resolved: cn.edu.tsinghua.iginx:parquet-file +``` + +这是因为 IGinX 依赖的 parquet-file 依赖并未发布到 Maven 中央仓库,而是托管在了 GitHub Pages 中。因此,我们在 pom.xml 文件中添加如下的仓库地址: + +```xml + + + parquet-file + IGinX GitHub repository + https://iginx-thu.github.io/Parquet/maven-repo + + +``` + +如果你配置了镜像源,例如: + +```xml + + aliyunmaven + central + 阿里云公共仓库 + https://maven.aliyun.com/repository/central + +``` + +注意,这里的 mirrorOf 的值为 central,表示只有在访问 Maven 中央仓库时才会使用阿里云的镜像源。 +如果你配置为 *,则表示所有的 Maven 仓库都会使用阿里云的镜像源,这会造成 IGinX 依赖的 parquet-file 依赖无法下载。 + +如果由于网络原因无法下载依赖,可以尝试使用代理的方式解决。 此外,还可以手动下载依赖,然后使用 Maven 的 install 命令将其安装到本地仓库, +详见:https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html diff --git a/docs/quickStarts_Parquet/IGinXBySource-EnglishVersion.md b/docs/quickStarts_Parquet/IGinXBySource-EnglishVersion.md index bd1dcd0c3a..9564a13f57 100644 --- a/docs/quickStarts_Parquet/IGinXBySource-EnglishVersion.md +++ b/docs/quickStarts_Parquet/IGinXBySource-EnglishVersion.md @@ -538,3 +538,44 @@ session.closeSession(); ``` For the full version of the code, please refer to: https://github.com/IGinX-THU/IGinX/blob/main/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetSessionExample.java + +## FAQ + +### Unable to find parquet-file dependency + +When compiling IGinX with Maven, you may encounter the following error: + +``` +The following artifacts could not be resolved: cn.edu.tsinghua.iginx:parquet-file +``` + +This is because the parquet-file dependency required by IGinX is not published to the Maven Central Repository but is hosted on GitHub Pages. Therefore, we need to add the following repository address to the pom.xml file: + +```xml + + + parquet-file + IGinX GitHub repository + https://iginx-thu.github.io/Parquet/maven-repo + + +``` + +If you have configured a mirror, for example: + +```xml + + aliyunmaven + central + Aliyun Public Repository + https://maven.aliyun.com/repository/central + +``` + +Note that the value of mirrorOf is central, which means that only when accessing the Maven Central Repository will the Aliyun mirror be used. +If you configure it as *, it means that all Maven repositories will use the Aliyun mirror, which will cause the parquet-file dependency required +by IGinX to fail to download. + +If you are unable to download the dependency due to network issues, you can try using a proxy. +Additionally, you can manually download the dependency and then use Maven's install command to install it to +the local repository. For more details, see: https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html diff --git a/docs/quickStarts_Parquet/IGinXBySource.md b/docs/quickStarts_Parquet/IGinXBySource.md index f7fc887b6f..8a40fb0c17 100644 --- a/docs/quickStarts_Parquet/IGinXBySource.md +++ b/docs/quickStarts_Parquet/IGinXBySource.md @@ -535,3 +535,42 @@ session.closeSession(); ``` 完整版使用代码可以参考:https://github.com/IGinX-THU/IGinX/blob/main/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetSessionExample.java + +## 常见问题 + +### 找不到 parquet-file 依赖 + +在使用 Maven 编译 IGinX 时,可能会遇到如下的错误: + +```shell +The following artifacts could not be resolved: cn.edu.tsinghua.iginx:parquet-file +``` + +这是因为 IGinX 依赖的 parquet-file 依赖并未发布到 Maven 中央仓库,而是托管在了 GitHub Pages 中。因此,我们在 pom.xml 文件中添加如下的仓库地址: + +```xml + + + parquet-file + IGinX GitHub repository + https://iginx-thu.github.io/Parquet/maven-repo + + +``` + +如果你配置了镜像源,例如: + +```xml + + aliyunmaven + central + 阿里云公共仓库 + https://maven.aliyun.com/repository/central + +``` + +注意,这里的 mirrorOf 的值为 central,表示只有在访问 Maven 中央仓库时才会使用阿里云的镜像源。 +如果你配置为 *,则表示所有的 Maven 仓库都会使用阿里云的镜像源,这会造成 IGinX 依赖的 parquet-file 依赖无法下载。 + +如果由于网络原因无法下载依赖,可以尝试使用代理的方式解决。 此外,还可以手动下载依赖,然后使用 Maven 的 install 命令将其安装到本地仓库, +详见:https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html diff --git a/pom.xml b/pom.xml index 8432c069c6..beb8ff7974 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,7 @@ core optimizer dataSource + session_py example test @@ -342,6 +343,91 @@ thrift-maven-plugin 0.10.0 + + com.diffplug.spotless + spotless-maven-plugin + 2.30.0 + + + + + + + + 1.7 + + + + + + **/*.py + + + + + **/*.g4 + + + 1.2.1 + + + + + **/*.sql + + + + + + + + **/*.yml + **/*.yaml + + + .github/**/*.yml + **/target/**/*.yml + + + + + + .github/**/*.yml + + + 1.19.0 + + 4 + true + + + + + + + **/*.md + + + **/target/**/*.md + + + + + + pom.xml + + + UTF-8 + true + 4 + false + true + false + true + + + + com.mycila license-maven-plugin @@ -404,94 +490,13 @@ com.diffplug.spotless spotless-maven-plugin - 2.30.0 - - - - - - - - 1.7 - - - - - - **/*.py - - - - - **/*.g4 - - - 1.2.1 - - - - - **/*.sql - - - - - - - - **/*.yml - **/*.yaml - - - .github/**/*.yml - **/target/**/*.yml - - - - - - .github/**/*.yml - - - 1.19.0 - - 4 - true - - - - - - - **/*.md - - - **/target/**/*.md - - - - - - pom.xml - - - UTF-8 - true - 4 - false - true - false - true - - - apply - initialize + process-sources @@ -503,7 +508,7 @@ format - initialize + process-sources diff --git a/session_py/pom.xml b/session_py/pom.xml new file mode 100644 index 0000000000..8bedea5ea7 --- /dev/null +++ b/session_py/pom.xml @@ -0,0 +1,39 @@ + + + + 4.0.0 + + + cn.edu.tsinghua + iginx + ${revision} + + + iginx-session-py + pom + IGinX Session Python + + + true + + + diff --git a/test/pom.xml b/test/pom.xml index 74ee150fa9..845907bc55 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -44,13 +44,6 @@ cn.edu.tsinghua filesystem - - cn.edu.tsinghua - filesystem - ${project.version} - tests - test - cn.edu.tsinghua iotdb12 diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java index 4701d8312d..838bb819b5 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java @@ -26,9 +26,9 @@ import cn.edu.tsinghua.iginx.filesystem.service.FileSystemConfig; import cn.edu.tsinghua.iginx.filesystem.service.storage.StorageConfig; import cn.edu.tsinghua.iginx.filesystem.service.storage.StorageService; -import cn.edu.tsinghua.iginx.filesystem.test.DataViewGenerator; import cn.edu.tsinghua.iginx.filesystem.thrift.DataUnit; import cn.edu.tsinghua.iginx.integration.expansion.BaseHistoryDataGenerator; +import cn.edu.tsinghua.iginx.integration.expansion.utils.DataViewGenerator; import cn.edu.tsinghua.iginx.thrift.DataType; import com.google.common.io.MoreFiles; import com.google.common.io.RecursiveDeleteOption; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/DataViewGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/DataViewGenerator.java new file mode 100644 index 0000000000..f860532bc7 --- /dev/null +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/DataViewGenerator.java @@ -0,0 +1,105 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package cn.edu.tsinghua.iginx.integration.expansion.utils; + +import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; +import cn.edu.tsinghua.iginx.engine.shared.data.write.RawData; +import cn.edu.tsinghua.iginx.engine.shared.data.write.RawDataType; +import cn.edu.tsinghua.iginx.engine.shared.data.write.RowDataView; +import cn.edu.tsinghua.iginx.thrift.DataType; +import cn.edu.tsinghua.iginx.utils.Bitmap; +import java.util.*; +import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DataViewGenerator { + + private static final Logger LOGGER = LoggerFactory.getLogger(DataViewGenerator.class); + + public static DataView genRowDataView( + List pathList, + List dataTypeList, + List keyList, + List> valuesList) { + List valueArrayList = + valuesList.stream().map(List::toArray).collect(Collectors.toList()); + return genRowDataView(pathList, null, dataTypeList, keyList, valueArrayList); + } + + public static DataView genRowDataView( + List pathList, + List> tagsList, + List dataTypeList, + List keyList, + List valuesList) { + // sort path by dictionary + List sortedPaths = new ArrayList<>(pathList); + Integer[] index = new Integer[sortedPaths.size()]; + for (int i = 0; i < sortedPaths.size(); i++) { + index[i] = i; + } + Arrays.sort(index, Comparator.comparing(sortedPaths::get)); + Collections.sort(sortedPaths); + List sortedDataTypeList = new ArrayList<>(); + List> sortedTagsList = new ArrayList<>(); + for (int i = 0; i < valuesList.size(); i++) { + Object[] values = new Object[index.length]; + for (int j = 0; j < index.length; j++) { + values[j] = (valuesList.get(i))[index[j]]; + } + valuesList.set(i, values); + } + for (Integer i : index) { + sortedDataTypeList.add(dataTypeList.get(i)); + } + if (tagsList != null) { + for (Integer i : index) { + sortedTagsList.add(tagsList.get(i)); + } + } + + // generate bitmaps and key + List bitmapList = new ArrayList<>(); + for (Object[] values : valuesList) { + if (values.length != pathList.size()) { + LOGGER.error("The sizes of paths and the element of valuesList should be equal."); + return null; + } + Bitmap bitmap = new Bitmap(values.length); + for (int j = 0; j < values.length; j++) { + if (values[j] != null) { + bitmap.mark(j); + } + } + bitmapList.add(bitmap); + } + + RawData rawData = + new RawData( + sortedPaths, + sortedTagsList, + keyList, + valuesList.toArray(), + sortedDataTypeList, + bitmapList, + RawDataType.Row); + + return new RowDataView(rawData, 0, sortedPaths.size(), 0, valuesList.size()); + } +} diff --git a/thrift/pom.xml b/thrift/pom.xml index 62c7b1f545..22fe65726e 100644 --- a/thrift/pom.xml +++ b/thrift/pom.xml @@ -187,7 +187,7 @@ run - package + generate-sources From 9dee92aaf03e971357cae654d47ee4b7a464d3e4 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 21 Oct 2024 17:36:03 +0800 Subject: [PATCH 14/33] update license --- LICENSE | 827 ++++-------------- LICENSE_HEADER | 18 +- antlr/pom.xml | 18 +- .../antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 18 +- assembly/pom.xml | 18 +- .../src/assembly/component/iginx-core.xml | 18 +- .../component/iginx-filesystem-driver.xml | 18 +- .../component/iginx-influxdb-driver.xml | 18 +- .../component/iginx-iotdb12-driver.xml | 18 +- .../component/iginx-mongodb-driver.xml | 18 +- .../assembly/component/iginx-redis-driver.xml | 18 +- .../component/iginx-relational-driver.xml | 18 +- .../assembly/component/include-zookeeper.xml | 18 +- assembly/src/assembly/include.xml | 18 +- .../resources/fast-deploy/clearAllData.bat | 18 +- .../resources/fast-deploy/clearAllData.sh | 20 +- .../resources/fast-deploy/runIGinXOn1Host.bat | 18 +- .../resources/fast-deploy/runIGinXOn1Host.sh | 20 +- .../fast-deploy/runIGinXOn1HostWithPemjax.bat | 18 +- .../fast-deploy/runIGinXOn1HostWithPemjax.sh | 20 +- .../resources/fast-deploy/stopIGinX.bat | 18 +- .../resources/fast-deploy/stopIGinX.sh | 20 +- assembly/src/assembly/server.xml | 18 +- client/pom.xml | 18 +- client/src/assembly/client.xml | 18 +- .../src/assembly/resources/sbin/start_cli.bat | 19 +- .../src/assembly/resources/sbin/start_cli.sh | 20 +- .../tsinghua/iginx/client/IginxClient.java | 18 +- .../client/exception/ClientException.java | 18 +- conf/config.properties | 18 +- conf/file-permission.properties | 18 +- conf/log4j2.properties | 18 +- core/pom.xml | 18 +- .../src/assembly/resources/conf/iginx-env.cmd | 18 +- core/src/assembly/resources/conf/iginx-env.sh | 18 +- .../assembly/resources/sbin/start_iginx.bat | 19 +- .../assembly/resources/sbin/start_iginx.sh | 18 +- core/src/assembly/server.xml | 18 +- .../java/cn/edu/tsinghua/iginx/Iginx.java | 18 +- .../cn/edu/tsinghua/iginx/IginxWorker.java | 18 +- .../iginx/auth/FilePermissionManager.java | 19 +- .../tsinghua/iginx/auth/SessionManager.java | 18 +- .../edu/tsinghua/iginx/auth/UserManager.java | 18 +- .../iginx/auth/entity/FileAccessType.java | 19 +- .../utils/FilePermissionRuleNameFilters.java | 19 +- .../tsinghua/iginx/compaction/Compaction.java | 19 +- .../iginx/compaction/CompactionManager.java | 19 +- .../FragmentDeletionCompaction.java | 19 +- .../iginx/compaction/InstantCompaction.java | 19 +- .../LowAccessFragmentCompaction.java | 19 +- .../LowWriteFragmentCompaction.java | 19 +- .../cn/edu/tsinghua/iginx/conf/Config.java | 18 +- .../tsinghua/iginx/conf/ConfigDescriptor.java | 18 +- .../cn/edu/tsinghua/iginx/conf/Constants.java | 18 +- .../iginx/conf/FilePermissionConfig.java | 19 +- .../cn/edu/tsinghua/iginx/conf/FileUtils.java | 19 +- .../conf/entity/FilePermissionDescriptor.java | 19 +- .../conf/parser/FilePermissionsParser.java | 19 +- .../tsinghua/iginx/engine/ContextBuilder.java | 19 +- .../iginx/engine/StatementBuilder.java | 19 +- .../iginx/engine/StatementExecutor.java | 19 +- .../logical/constraint/ConstraintChecker.java | 19 +- .../constraint/ConstraintCheckerManager.java | 19 +- .../constraint/NaiveConstraintChecker.java | 19 +- .../logical/generator/AbstractGenerator.java | 19 +- .../logical/generator/DeleteGenerator.java | 19 +- .../logical/generator/GeneratorType.java | 19 +- .../logical/generator/InsertGenerator.java | 19 +- .../logical/generator/LogicalGenerator.java | 19 +- .../logical/generator/QueryGenerator.java | 19 +- .../generator/ShowColumnsGenerator.java | 19 +- .../logical/optimizer/IRuleCollection.java | 19 +- .../optimizer/LogicalOptimizerManager.java | 19 +- .../engine/logical/optimizer/Optimizer.java | 19 +- .../logical/utils/LogicalFilterUtils.java | 19 +- .../iginx/engine/logical/utils/MetaUtils.java | 19 +- .../engine/logical/utils/OperatorUtils.java | 19 +- .../iginx/engine/logical/utils/PathUtils.java | 19 +- .../iginx/engine/physical/PhysicalEngine.java | 18 +- .../engine/physical/PhysicalEngineImpl.java | 18 +- .../InvalidOperatorParameterException.java | 18 +- .../NonExecutablePhysicalTaskException.java | 18 +- .../exception/NonExistedStorageException.java | 18 +- .../NotSupportedOperatorException.java | 18 +- .../physical/exception/PhysicalException.java | 18 +- .../exception/PhysicalRuntimeException.java | 19 +- .../PhysicalTaskExecuteFailureException.java | 18 +- .../physical/exception/RowFetchException.java | 18 +- .../StorageInitializationException.java | 18 +- .../TooManyPhysicalTasksException.java | 18 +- .../UnexpectedOperatorException.java | 18 +- .../UnimplementedOperatorException.java | 18 +- .../memory/MemoryPhysicalTaskDispatcher.java | 18 +- .../execute/OperatorMemoryExecutor.java | 18 +- .../OperatorMemoryExecutorFactory.java | 18 +- .../engine/physical/memory/execute/Table.java | 18 +- .../naive/NaiveOperatorMemoryExecutor.java | 18 +- .../stream/AddSchemaPrefixLazyStream.java | 19 +- .../execute/stream/AddSequenceLazyStream.java | 18 +- .../execute/stream/BinaryLazyStream.java | 18 +- .../execute/stream/CrossJoinLazyStream.java | 19 +- .../execute/stream/DistinctLazyStream.java | 19 +- .../execute/stream/DownsampleLazyStream.java | 18 +- .../memory/execute/stream/EmptyRowStream.java | 18 +- .../execute/stream/ExceptLazyStream.java | 19 +- .../execute/stream/GroupByLazyStream.java | 19 +- .../stream/HashInnerJoinLazyStream.java | 19 +- .../stream/HashMarkJoinLazyStream.java | 19 +- .../stream/HashOuterJoinLazyStream.java | 19 +- .../stream/HashSingleJoinLazyStream.java | 19 +- .../execute/stream/IntersectLazyStream.java | 19 +- .../memory/execute/stream/JoinLazyStream.java | 18 +- .../execute/stream/LimitLazyStream.java | 18 +- .../stream/MappingTransformLazyStream.java | 18 +- .../stream/NestedLoopInnerJoinLazyStream.java | 19 +- .../stream/NestedLoopMarkJoinLazyStream.java | 19 +- .../stream/NestedLoopOuterJoinLazyStream.java | 19 +- .../NestedLoopSingleJoinLazyStream.java | 19 +- .../execute/stream/PathUnionLazyStream.java | 18 +- .../execute/stream/ProjectLazyStream.java | 18 +- .../execute/stream/RenameLazyStream.java | 19 +- .../execute/stream/ReorderLazyStream.java | 19 +- .../stream/RowTransformLazyStream.java | 18 +- .../execute/stream/SelectLazyStream.java | 18 +- .../stream/SetTransformLazyStream.java | 18 +- .../memory/execute/stream/SortLazyStream.java | 18 +- .../SortedMergeInnerJoinLazyStream.java | 19 +- .../SortedMergeOuterJoinLazyStream.java | 19 +- .../stream/StreamOperatorMemoryExecutor.java | 18 +- .../execute/stream/UnaryLazyStream.java | 18 +- .../execute/stream/UnionAllLazyStream.java | 19 +- .../stream/UnionDistinctLazyStream.java | 19 +- .../stream/ValueToSelectedPathLazyStream.java | 19 +- .../memory/execute/utils/ExprUtils.java | 19 +- .../memory/execute/utils/FilterUtils.java | 18 +- .../memory/execute/utils/GroupByKey.java | 19 +- .../memory/execute/utils/HeaderUtils.java | 19 +- .../memory/execute/utils/RowUtils.java | 18 +- .../memory/queue/MemoryPhysicalTaskQueue.java | 18 +- .../queue/MemoryPhysicalTaskQueueImpl.java | 18 +- .../physical/optimizer/PhysicalOptimizer.java | 18 +- .../optimizer/PhysicalOptimizerManager.java | 18 +- .../physical/optimizer/ReplicaDispatcher.java | 18 +- .../engine/physical/storage/IStorage.java | 18 +- .../storage/StorageEngineClassLoader.java | 18 +- .../physical/storage/StorageManager.java | 18 +- .../physical/storage/domain/Column.java | 18 +- .../physical/storage/domain/ColumnKey.java | 19 +- .../physical/storage/domain/DataArea.java | 19 +- .../execute/StoragePhysicalTaskExecutor.java | 18 +- .../queue/StoragePhysicalTaskQueue.java | 18 +- .../storage/utils/ColumnKeyTranslator.java | 19 +- .../physical/storage/utils/TagKVUtils.java | 19 +- .../physical/task/AbstractPhysicalTask.java | 18 +- .../task/BinaryMemoryPhysicalTask.java | 18 +- .../task/CompletedFoldedPhysicalTask.java | 19 +- .../task/FoldedMemoryPhysicalTask.java | 19 +- .../physical/task/GlobalPhysicalTask.java | 18 +- .../engine/physical/task/Measurable.java | 19 +- .../physical/task/MemoryPhysicalTask.java | 18 +- .../task/MultipleMemoryPhysicalTask.java | 19 +- .../engine/physical/task/PhysicalTask.java | 18 +- .../physical/task/StoragePhysicalTask.java | 18 +- .../physical/task/TaskExecuteResult.java | 18 +- .../iginx/engine/physical/task/TaskType.java | 18 +- .../task/UnaryMemoryPhysicalTask.java | 19 +- .../engine/physical/task/utils/TaskUtils.java | 19 +- .../task/visitor/TaskInfoVisitor.java | 19 +- .../physical/task/visitor/TaskVisitor.java | 19 +- .../iginx/engine/shared/Constants.java | 18 +- .../iginx/engine/shared/KeyRange.java | 18 +- .../iginx/engine/shared/RequestContext.java | 19 +- .../tsinghua/iginx/engine/shared/Result.java | 19 +- .../shared/constraint/ConstraintManager.java | 18 +- .../engine/shared/data/ExecuteDetail.java | 19 +- .../iginx/engine/shared/data/Value.java | 18 +- .../data/read/ClearEmptyRowStreamWrapper.java | 18 +- .../iginx/engine/shared/data/read/Field.java | 18 +- .../data/read/FilterRowStreamWrapper.java | 19 +- .../iginx/engine/shared/data/read/Header.java | 18 +- .../data/read/MergeFieldRowStreamWrapper.java | 19 +- .../data/read/MergeTimeRowStreamWrapper.java | 19 +- .../iginx/engine/shared/data/read/Row.java | 18 +- .../engine/shared/data/read/RowStream.java | 18 +- .../shared/data/read/RowStreamWrapper.java | 18 +- .../engine/shared/data/write/BitmapView.java | 18 +- .../shared/data/write/ColumnDataView.java | 18 +- .../engine/shared/data/write/DataView.java | 18 +- .../engine/shared/data/write/RawData.java | 19 +- .../engine/shared/data/write/RawDataType.java | 19 +- .../engine/shared/data/write/RowDataView.java | 18 +- .../StatementExecutionException.java | 18 +- .../engine/shared/expr/BaseExpression.java | 19 +- .../engine/shared/expr/BinaryExpression.java | 19 +- .../engine/shared/expr/BracketExpression.java | 19 +- .../shared/expr/CaseWhenExpression.java | 18 +- .../shared/expr/ConstantExpression.java | 19 +- .../iginx/engine/shared/expr/Expression.java | 19 +- .../engine/shared/expr/ExpressionVisitor.java | 19 +- .../shared/expr/FromValueExpression.java | 19 +- .../engine/shared/expr/FuncExpression.java | 19 +- .../engine/shared/expr/KeyExpression.java | 18 +- .../shared/expr/MultipleExpression.java | 19 +- .../iginx/engine/shared/expr/Operator.java | 19 +- .../shared/expr/SequenceExpression.java | 18 +- .../engine/shared/expr/UnaryExpression.java | 19 +- .../iginx/engine/shared/file/CSVFile.java | 19 +- .../iginx/engine/shared/file/FileType.java | 19 +- .../engine/shared/file/read/ImportCsv.java | 19 +- .../engine/shared/file/read/ImportFile.java | 19 +- .../shared/file/write/ExportByteStream.java | 19 +- .../engine/shared/file/write/ExportCsv.java | 19 +- .../engine/shared/file/write/ExportFile.java | 19 +- .../engine/shared/function/Function.java | 18 +- .../engine/shared/function/FunctionCall.java | 18 +- .../shared/function/FunctionParams.java | 19 +- .../engine/shared/function/FunctionType.java | 18 +- .../engine/shared/function/FunctionUtils.java | 19 +- .../shared/function/MappingFunction.java | 18 +- .../engine/shared/function/MappingType.java | 18 +- .../shared/function/RowMappingFunction.java | 18 +- .../shared/function/SetMappingFunction.java | 18 +- .../function/manager/FunctionManager.java | 18 +- .../function/system/ArithmeticExpr.java | 19 +- .../engine/shared/function/system/Avg.java | 18 +- .../engine/shared/function/system/Count.java | 18 +- .../engine/shared/function/system/First.java | 18 +- .../shared/function/system/FirstValue.java | 18 +- .../engine/shared/function/system/Last.java | 18 +- .../shared/function/system/LastValue.java | 18 +- .../engine/shared/function/system/Max.java | 18 +- .../engine/shared/function/system/Min.java | 18 +- .../engine/shared/function/system/Ratio.java | 19 +- .../engine/shared/function/system/Sum.java | 18 +- .../function/system/utils/GroupByUtils.java | 18 +- .../function/system/utils/ValueUtils.java | 18 +- .../engine/shared/function/udf/UDAF.java | 19 +- .../engine/shared/function/udf/UDSF.java | 19 +- .../engine/shared/function/udf/UDTF.java | 19 +- .../shared/function/udf/python/PyUDAF.java | 19 +- .../shared/function/udf/python/PyUDF.java | 18 +- .../shared/function/udf/python/PyUDSF.java | 19 +- .../shared/function/udf/python/PyUDTF.java | 19 +- .../shared/function/udf/utils/CheckUtils.java | 19 +- .../shared/function/udf/utils/DataUtils.java | 19 +- .../shared/function/udf/utils/RowUtils.java | 19 +- .../operator/AbstractBinaryOperator.java | 18 +- .../engine/shared/operator/AbstractJoin.java | 19 +- .../operator/AbstractMultipleOperator.java | 19 +- .../shared/operator/AbstractOperator.java | 18 +- .../operator/AbstractUnaryOperator.java | 18 +- .../shared/operator/AddSchemaPrefix.java | 19 +- .../engine/shared/operator/AddSequence.java | 18 +- .../shared/operator/BinaryOperator.java | 18 +- .../shared/operator/CombineNonQuery.java | 19 +- .../engine/shared/operator/CrossJoin.java | 19 +- .../iginx/engine/shared/operator/Delete.java | 19 +- .../engine/shared/operator/Distinct.java | 19 +- .../engine/shared/operator/Downsample.java | 18 +- .../iginx/engine/shared/operator/Except.java | 19 +- .../shared/operator/FoldedOperator.java | 19 +- .../iginx/engine/shared/operator/GroupBy.java | 19 +- .../engine/shared/operator/InnerJoin.java | 19 +- .../iginx/engine/shared/operator/Insert.java | 19 +- .../engine/shared/operator/Intersect.java | 19 +- .../iginx/engine/shared/operator/Join.java | 18 +- .../iginx/engine/shared/operator/Limit.java | 18 +- .../shared/operator/MappingTransform.java | 18 +- .../engine/shared/operator/MarkJoin.java | 19 +- .../engine/shared/operator/Migration.java | 19 +- .../shared/operator/MultipleOperator.java | 19 +- .../engine/shared/operator/Operator.java | 18 +- .../engine/shared/operator/OuterJoin.java | 19 +- .../engine/shared/operator/PathUnion.java | 18 +- .../iginx/engine/shared/operator/Project.java | 19 +- .../operator/ProjectWaitingForPath.java | 19 +- .../iginx/engine/shared/operator/Rename.java | 19 +- .../iginx/engine/shared/operator/Reorder.java | 19 +- .../engine/shared/operator/RowTransform.java | 18 +- .../iginx/engine/shared/operator/Select.java | 19 +- .../engine/shared/operator/SetTransform.java | 18 +- .../engine/shared/operator/ShowColumns.java | 19 +- .../engine/shared/operator/SingleJoin.java | 19 +- .../iginx/engine/shared/operator/Sort.java | 18 +- .../engine/shared/operator/UnaryOperator.java | 18 +- .../iginx/engine/shared/operator/Union.java | 19 +- .../shared/operator/ValueToSelectedPath.java | 19 +- .../shared/operator/filter/AndFilter.java | 18 +- .../shared/operator/filter/BoolFilter.java | 19 +- .../shared/operator/filter/ExprFilter.java | 19 +- .../engine/shared/operator/filter/Filter.java | 18 +- .../shared/operator/filter/FilterType.java | 18 +- .../shared/operator/filter/FilterVisitor.java | 19 +- .../shared/operator/filter/KeyFilter.java | 18 +- .../shared/operator/filter/NotFilter.java | 18 +- .../engine/shared/operator/filter/Op.java | 18 +- .../shared/operator/filter/OrFilter.java | 18 +- .../shared/operator/filter/PathFilter.java | 19 +- .../shared/operator/filter/ValueFilter.java | 18 +- .../shared/operator/tag/AndTagFilter.java | 18 +- .../operator/tag/BasePreciseTagFilter.java | 19 +- .../shared/operator/tag/BaseTagFilter.java | 18 +- .../shared/operator/tag/OrTagFilter.java | 18 +- .../shared/operator/tag/PreciseTagFilter.java | 19 +- .../engine/shared/operator/tag/TagFilter.java | 18 +- .../shared/operator/tag/TagFilterType.java | 18 +- .../shared/operator/tag/WithoutTagFilter.java | 19 +- .../engine/shared/operator/type/FuncType.java | 19 +- .../shared/operator/type/JoinAlgType.java | 19 +- .../shared/operator/type/OperatorType.java | 18 +- .../shared/operator/type/OuterJoinType.java | 19 +- .../visitor/DeepFirstQueueVisitor.java | 19 +- .../shared/operator/visitor/IndexVisitor.java | 19 +- .../operator/visitor/OperatorInfoVisitor.java | 19 +- .../operator/visitor/OperatorVisitor.java | 19 +- .../operator/visitor/TreeInfoVisitor.java | 19 +- .../processor/PostExecuteProcessor.java | 19 +- .../processor/PostLogicalProcessor.java | 19 +- .../shared/processor/PostParseProcessor.java | 19 +- .../processor/PostPhysicalProcessor.java | 19 +- .../shared/processor/PreExecuteProcessor.java | 19 +- .../shared/processor/PreLogicalProcessor.java | 19 +- .../shared/processor/PreParseProcessor.java | 19 +- .../processor/PrePhysicalProcessor.java | 19 +- .../engine/shared/processor/Processor.java | 19 +- .../engine/shared/source/AbstractSource.java | 18 +- .../engine/shared/source/ConstantSource.java | 18 +- .../engine/shared/source/EmptySource.java | 19 +- .../engine/shared/source/FragmentSource.java | 18 +- .../engine/shared/source/GlobalSource.java | 19 +- .../engine/shared/source/OperatorSource.java | 18 +- .../iginx/engine/shared/source/Source.java | 18 +- .../engine/shared/source/SourceType.java | 18 +- .../iginx/exception/IginxException.java | 18 +- .../iginx/metadata/DefaultMetaManager.java | 18 +- .../tsinghua/iginx/metadata/IMetaManager.java | 18 +- .../iginx/metadata/MetaManagerMock.java | 19 +- .../iginx/metadata/MetaManagerWrapper.java | 19 +- .../metadata/cache/DefaultMetaCache.java | 18 +- .../iginx/metadata/cache/IMetaCache.java | 18 +- .../metadata/entity/ColumnsInterval.java | 18 +- .../iginx/metadata/entity/FragmentMeta.java | 18 +- .../iginx/metadata/entity/IginxMeta.java | 18 +- .../iginx/metadata/entity/KeyInterval.java | 18 +- .../metadata/entity/StorageEngineMeta.java | 18 +- .../metadata/entity/StorageUnitMeta.java | 18 +- .../metadata/entity/TransformTaskMeta.java | 19 +- .../iginx/metadata/entity/UserMeta.java | 18 +- .../exception/MetaStorageException.java | 18 +- .../hook/EnableMonitorChangeHook.java | 18 +- .../metadata/hook/FragmentChangeHook.java | 18 +- .../iginx/metadata/hook/IginxChangeHook.java | 18 +- .../MaxActiveEndKeyStatisticsChangeHook.java | 18 +- .../hook/ReshardCounterChangeHook.java | 18 +- .../hook/ReshardStatusChangeHook.java | 18 +- .../hook/SchemaMappingChangeHook.java | 18 +- .../metadata/hook/StorageChangeHook.java | 18 +- .../hook/StorageEngineChangeHook.java | 18 +- .../metadata/hook/StorageUnitChangeHook.java | 18 +- .../iginx/metadata/hook/StorageUnitHook.java | 18 +- .../metadata/hook/TimeSeriesChangeHook.java | 19 +- .../metadata/hook/TransformChangeHook.java | 19 +- .../iginx/metadata/hook/UserChangeHook.java | 18 +- .../metadata/hook/VersionChangeHook.java | 19 +- .../iginx/metadata/storage/IMetaStorage.java | 18 +- .../metadata/storage/constant/Constant.java | 19 +- .../storage/etcd/ETCDMetaStorage.java | 18 +- .../storage/zk/ZooKeeperMetaStorage.java | 18 +- .../sync/proposal/ProposalListener.java | 19 +- .../metadata/sync/proposal/SyncProposal.java | 19 +- .../metadata/sync/proposal/SyncVote.java | 19 +- .../metadata/sync/proposal/VoteListener.java | 19 +- .../sync/protocol/ExecutionException.java | 19 +- .../sync/protocol/NetworkException.java | 19 +- .../metadata/sync/protocol/SyncProtocol.java | 19 +- .../sync/protocol/VoteExpiredException.java | 19 +- .../protocol/etcd/ETCDSyncProtocolImpl.java | 19 +- .../zk/ZooKeeperSyncProtocolImpl.java | 19 +- .../metadata/utils/ColumnsIntervalUtils.java | 19 +- .../iginx/metadata/utils/FragmentUtils.java | 19 +- .../iginx/metadata/utils/IdUtils.java | 19 +- .../iginx/metadata/utils/ReshardStatus.java | 18 +- .../metadata/utils/StorageEngineUtils.java | 19 +- .../migration/GreedyMigrationPolicy.java | 19 +- .../iginx/migration/MigrationManager.java | 19 +- .../migration/MigrationPhysicalExecutor.java | 19 +- .../iginx/migration/MigrationPolicy.java | 19 +- .../iginx/migration/MigrationTask.java | 19 +- .../iginx/migration/MigrationType.java | 19 +- .../iginx/migration/MigrationUtils.java | 19 +- .../SimulationBasedMigrationPolicy.java | 19 +- .../recover/MigrationExecuteTask.java | 19 +- .../recover/MigrationExecuteType.java | 19 +- .../migration/recover/MigrationLogger.java | 19 +- .../recover/MigrationLoggerAnalyzer.java | 19 +- .../iginx/monitor/HotSpotMonitor.java | 19 +- .../edu/tsinghua/iginx/monitor/IMonitor.java | 19 +- .../iginx/monitor/MonitorManager.java | 19 +- .../iginx/monitor/RequestsMonitor.java | 19 +- .../iginx/mqtt/BrokerAuthenticator.java | 18 +- .../iginx/mqtt/IPayloadFormatter.java | 18 +- .../iginx/mqtt/JsonPayloadFormatter.java | 18 +- .../edu/tsinghua/iginx/mqtt/MQTTService.java | 18 +- .../cn/edu/tsinghua/iginx/mqtt/Message.java | 18 +- .../iginx/mqtt/PayloadFormatManager.java | 18 +- .../tsinghua/iginx/mqtt/PublishHandler.java | 18 +- .../tsinghua/iginx/notice/EmailNotifier.java | 19 +- .../tsinghua/iginx/policy/AbstractPolicy.java | 19 +- .../cn/edu/tsinghua/iginx/policy/IPolicy.java | 19 +- .../tsinghua/iginx/policy/PolicyManager.java | 19 +- .../cn/edu/tsinghua/iginx/policy/Utils.java | 19 +- .../policy/historical/HistoricalPolicy.java | 18 +- .../iginx/policy/naive/NaivePolicy.java | 19 +- .../tsinghua/iginx/policy/naive/Sampler.java | 19 +- .../iginx/policy/simple/ColumnCalDO.java | 19 +- .../iginx/policy/simple/FragmentCreator.java | 19 +- .../iginx/policy/simple/SimplePolicy.java | 19 +- .../iginx/policy/test/KeyRangeTestPolicy.java | 19 +- .../iginx/resource/QueryResourceManager.java | 18 +- .../iginx/resource/ResourceManager.java | 18 +- .../system/DefaultSystemMetricsService.java | 18 +- .../resource/system/SystemMetricsService.java | 18 +- .../tsinghua/iginx/rest/MetricsResource.java | 18 +- .../edu/tsinghua/iginx/rest/RestServer.java | 18 +- .../edu/tsinghua/iginx/rest/RestSession.java | 18 +- .../cn/edu/tsinghua/iginx/rest/RestUtils.java | 19 +- .../tsinghua/iginx/rest/bean/Annotation.java | 19 +- .../iginx/rest/bean/AnnotationLimit.java | 19 +- .../edu/tsinghua/iginx/rest/bean/Metric.java | 18 +- .../edu/tsinghua/iginx/rest/bean/Query.java | 18 +- .../tsinghua/iginx/rest/bean/QueryMetric.java | 18 +- .../tsinghua/iginx/rest/bean/QueryResult.java | 18 +- .../iginx/rest/bean/QueryResultDataset.java | 18 +- .../iginx/rest/insert/DataPointsParser.java | 18 +- .../iginx/rest/insert/InsertWorker.java | 18 +- .../iginx/rest/query/QueryExecutor.java | 18 +- .../iginx/rest/query/QueryParser.java | 18 +- .../iginx/rest/query/aggregator/Filter.java | 18 +- .../query/aggregator/QueryAggregator.java | 18 +- .../query/aggregator/QueryAggregatorAvg.java | 18 +- .../aggregator/QueryAggregatorCount.java | 18 +- .../query/aggregator/QueryAggregatorDev.java | 18 +- .../query/aggregator/QueryAggregatorDiff.java | 18 +- .../query/aggregator/QueryAggregatorDiv.java | 18 +- .../aggregator/QueryAggregatorFilter.java | 18 +- .../aggregator/QueryAggregatorFirst.java | 18 +- .../query/aggregator/QueryAggregatorLast.java | 18 +- .../query/aggregator/QueryAggregatorMax.java | 18 +- .../query/aggregator/QueryAggregatorMin.java | 18 +- .../query/aggregator/QueryAggregatorNone.java | 18 +- .../aggregator/QueryAggregatorPercentile.java | 18 +- .../query/aggregator/QueryAggregatorRate.java | 18 +- .../aggregator/QueryAggregatorSampler.java | 18 +- .../aggregator/QueryAggregatorSaveAs.java | 18 +- .../query/aggregator/QueryAggregatorSum.java | 18 +- .../query/aggregator/QueryAggregatorType.java | 18 +- .../query/aggregator/QueryShowColumns.java | 18 +- .../tsinghua/iginx/sql/IginXSqlVisitor.java | 19 +- .../edu/tsinghua/iginx/sql/SQLConstant.java | 19 +- .../edu/tsinghua/iginx/sql/SQLParseError.java | 19 +- .../sql/exception/SQLParserException.java | 19 +- .../statement/AddStorageEngineStatement.java | 19 +- .../sql/statement/AlterEngineStatement.java | 18 +- .../sql/statement/CancelJobStatement.java | 19 +- .../statement/ChangePasswordStatement.java | 18 +- .../sql/statement/ClearDataStatement.java | 19 +- .../CommitTransformJobStatement.java | 19 +- .../iginx/sql/statement/CompactStatement.java | 19 +- .../sql/statement/CountPointsStatement.java | 19 +- .../sql/statement/CreateUserStatement.java | 18 +- .../iginx/sql/statement/DataStatement.java | 19 +- .../sql/statement/DeleteColumnsStatement.java | 19 +- .../iginx/sql/statement/DeleteStatement.java | 19 +- .../sql/statement/DropTaskStatement.java | 19 +- .../sql/statement/DropUserStatement.java | 18 +- .../ExportFileFromSelectStatement.java | 19 +- .../sql/statement/GrantUserStatement.java | 18 +- .../sql/statement/InsertFromCsvStatement.java | 19 +- .../statement/InsertFromSelectStatement.java | 19 +- .../iginx/sql/statement/InsertStatement.java | 19 +- .../sql/statement/RegisterTaskStatement.java | 19 +- .../RemoveHistoryDataSourceStatement.java | 19 +- .../sql/statement/SetConfigStatement.java | 19 +- .../sql/statement/SetRulesStatement.java | 19 +- .../statement/ShowClusterInfoStatement.java | 19 +- .../sql/statement/ShowColumnsStatement.java | 19 +- .../sql/statement/ShowConfigStatement.java | 19 +- .../statement/ShowEligibleJobStatement.java | 19 +- .../sql/statement/ShowJobStatusStatement.java | 19 +- .../statement/ShowRegisterTaskStatement.java | 19 +- .../statement/ShowReplicationStatement.java | 19 +- .../sql/statement/ShowRulesStatement.java | 19 +- .../sql/statement/ShowSessionIDStatement.java | 19 +- .../sql/statement/ShowUserStatement.java | 18 +- .../iginx/sql/statement/Statement.java | 19 +- .../iginx/sql/statement/StatementType.java | 19 +- .../iginx/sql/statement/SystemStatement.java | 19 +- .../sql/statement/frompart/CteFromPart.java | 19 +- .../sql/statement/frompart/FromPart.java | 19 +- .../sql/statement/frompart/FromPartType.java | 19 +- .../sql/statement/frompart/PathFromPart.java | 19 +- .../frompart/ShowColumnsFromPart.java | 19 +- .../statement/frompart/SubQueryFromPart.java | 19 +- .../frompart/join/JoinCondition.java | 19 +- .../sql/statement/frompart/join/JoinType.java | 19 +- .../select/BinarySelectStatement.java | 19 +- .../select/CommonTableExpression.java | 19 +- .../sql/statement/select/SelectStatement.java | 19 +- .../select/UnarySelectStatement.java | 19 +- .../select/subclause/FromClause.java | 19 +- .../select/subclause/GroupByClause.java | 19 +- .../select/subclause/HavingClause.java | 19 +- .../select/subclause/LimitClause.java | 19 +- .../select/subclause/OrderByClause.java | 19 +- .../select/subclause/SelectClause.java | 19 +- .../select/subclause/WhereClause.java | 19 +- .../iginx/sql/utils/ExpressionUtils.java | 19 +- .../AbstractStageStatisticsCollector.java | 19 +- .../ExecuteStatisticsCollector.java | 19 +- .../IExecuteStatisticsCollector.java | 19 +- .../ILogicalStatisticsCollector.java | 19 +- .../statistics/IParseStatisticsCollector.java | 19 +- .../IPhysicalStatisticsCollector.java | 19 +- .../statistics/IStatisticsCollector.java | 19 +- .../LogicalStatisticsCollector.java | 19 +- .../statistics/ParseStatisticsCollector.java | 19 +- .../PhysicalStatisticsCollector.java | 19 +- .../tsinghua/iginx/statistics/Statistics.java | 19 +- .../iginx/statistics/StatisticsCollector.java | 19 +- .../tsinghua/iginx/transform/api/Checker.java | 19 +- .../tsinghua/iginx/transform/api/Driver.java | 19 +- .../tsinghua/iginx/transform/api/Reader.java | 19 +- .../tsinghua/iginx/transform/api/Runner.java | 19 +- .../tsinghua/iginx/transform/api/Stage.java | 19 +- .../tsinghua/iginx/transform/api/Writer.java | 19 +- .../iginx/transform/data/ArrowReader.java | 19 +- .../iginx/transform/data/ArrowWriter.java | 19 +- .../iginx/transform/data/BatchData.java | 19 +- .../transform/data/CollectionWriter.java | 19 +- .../iginx/transform/data/ExportWriter.java | 19 +- .../iginx/transform/data/Exporter.java | 19 +- .../transform/data/FileAppendWriter.java | 19 +- .../iginx/transform/data/IginXWriter.java | 19 +- .../iginx/transform/data/LogWriter.java | 19 +- .../iginx/transform/data/PemjaReader.java | 19 +- .../iginx/transform/data/PemjaWriter.java | 19 +- .../iginx/transform/data/RowStreamReader.java | 19 +- .../iginx/transform/data/SplitReader.java | 19 +- .../iginx/transform/driver/IPCWorker.java | 19 +- .../iginx/transform/driver/PemjaDriver.java | 19 +- .../iginx/transform/driver/PemjaWorker.java | 19 +- .../iginx/transform/driver/PythonDriver.java | 19 +- .../exception/CreateWorkerException.java | 19 +- .../exception/ReadBatchException.java | 19 +- .../exception/TransformException.java | 19 +- .../exception/UnknownArgumentException.java | 19 +- .../exception/UnknownDataFlowException.java | 19 +- .../exception/WriteBatchException.java | 19 +- .../transform/exec/BatchStageRunner.java | 19 +- .../iginx/transform/exec/JobRunner.java | 19 +- .../transform/exec/JobValidationChecker.java | 19 +- .../iginx/transform/exec/ScheduledJob.java | 18 +- .../transform/exec/StreamStageRunner.java | 19 +- .../iginx/transform/exec/TaskManager.java | 19 +- .../transform/exec/TransformJobManager.java | 19 +- .../iginx/transform/pojo/BatchStage.java | 19 +- .../iginx/transform/pojo/IginXTask.java | 19 +- .../tsinghua/iginx/transform/pojo/Job.java | 19 +- .../pojo/JobScheduleTriggerMaker.java | 18 +- .../iginx/transform/pojo/PythonTask.java | 19 +- .../iginx/transform/pojo/StreamStage.java | 19 +- .../tsinghua/iginx/transform/pojo/Task.java | 19 +- .../iginx/transform/pojo/TaskFactory.java | 19 +- .../pojo/TransformJobFinishListener.java | 18 +- .../iginx/transform/utils/Constants.java | 19 +- .../tsinghua/iginx/transform/utils/Mutex.java | 19 +- .../iginx/transform/utils/RedirectLogger.java | 19 +- .../iginx/transform/utils/TypeUtils.java | 19 +- .../main/resources/file-permission.properties | 18 +- core/src/main/resources/log4j2.properties | 18 +- .../iginx/auth/FilePermissionManagerTest.java | 19 +- .../LowAccessFragmentCompactionTest.java | 19 +- .../LowWriteFragmentCompactionTest.java | 19 +- .../iginx/compaction/PhysicalEngineMock.java | 19 +- .../iginx/conf/FilePermissionConfigTest.java | 19 +- .../logical/utils/LogicalFilterUtilsTest.java | 19 +- .../engine/logical/utils/PathUtilsTest.java | 19 +- .../AbstractOperatorMemoryExecutorTest.java | 18 +- .../NaiveOperatorMemoryExecutorTest.java | 18 +- .../StreamOperatorMemoryExecutorTest.java | 18 +- .../utils/ColumnKeyTranslatorTest.java | 19 +- .../shared/function/system/MaxTest.java | 18 +- .../metadata/entity/ColumnsIntervalTest.java | 19 +- .../iginx/metadata/entity/ExtraParamTest.java | 19 +- .../iginx/notice/EmailNotifierTest.java | 19 +- .../cn/edu/tsinghua/iginx/rest/ParseTest.java | 19 +- .../tsinghua/iginx/sql/FilterVisitorTest.java | 19 +- .../cn/edu/tsinghua/iginx/sql/ParseTest.java | 19 +- .../cn/edu/tsinghua/iginx/sql/TestUtils.java | 19 +- .../tsinghua/iginx/transform/TriggerTest.java | 18 +- .../iginx/transform/YamlReadTest.java | 18 +- dataSource/filesystem/pom.xml | 18 +- .../iginx/filesystem/FileSystemStorage.java | 18 +- .../filesystem/common/AbstractConfig.java | 18 +- .../iginx/filesystem/common/Closeables.java | 18 +- .../iginx/filesystem/common/Configs.java | 18 +- .../iginx/filesystem/common/DataUnits.java | 18 +- .../iginx/filesystem/common/Fields.java | 18 +- .../common/FileSystemException.java | 18 +- .../common/FileSystemRowStream.java | 18 +- .../iginx/filesystem/common/Filters.java | 18 +- .../iginx/filesystem/common/IginxPaths.java | 18 +- .../iginx/filesystem/common/Patterns.java | 18 +- .../iginx/filesystem/common/Ranges.java | 18 +- .../iginx/filesystem/common/RowStreams.java | 18 +- .../iginx/filesystem/common/Strings.java | 18 +- .../filesystem/format/AbstractFileFormat.java | 18 +- .../iginx/filesystem/format/FileFormat.java | 18 +- .../filesystem/format/FileFormatManager.java | 18 +- .../format/parquet/FilterUtils.java | 19 +- .../format/parquet/IGroupConverter.java | 19 +- .../format/parquet/IParquetReader.java | 19 +- .../format/parquet/IParquetWriter.java | 19 +- .../filesystem/format/parquet/IRecord.java | 19 +- .../format/parquet/IRecordDematerializer.java | 19 +- .../format/parquet/IRecordMaterializer.java | 19 +- .../format/parquet/ParquetFormat.java | 18 +- .../format/parquet/ParquetFormatReader.java | 18 +- .../parquet/ParquetFormatRowStream.java | 18 +- .../format/parquet/ProjectUtils.java | 19 +- .../filesystem/format/raw/RawFormat.java | 18 +- .../format/raw/RawFormatRowStream.java | 18 +- .../filesystem/format/raw/RawReader.java | 18 +- .../format/raw/RawReaderConfig.java | 18 +- .../filesystem/service/FileSystemConfig.java | 18 +- .../filesystem/service/FileSystemService.java | 18 +- .../iginx/filesystem/service/Service.java | 19 +- .../service/rpc/client/ClientConfig.java | 18 +- .../rpc/client/ClientObjectMappingUtils.java | 18 +- .../rpc/client/RemoteFileSystemException.java | 18 +- .../service/rpc/client/RemoteService.java | 19 +- .../service/rpc/client/TSocketPool.java | 18 +- .../rpc/client/pool/ForwardTTransport.java | 18 +- .../rpc/client/pool/PooledTTransport.java | 18 +- .../rpc/client/pool/TTransportPool.java | 18 +- .../rpc/client/pool/TTransportPoolConfig.java | 18 +- .../rpc/client/transport/TSocketFactory.java | 18 +- .../client/transport/TTransportFactory.java | 18 +- .../filesystem/service/rpc/server/Server.java | 18 +- .../rpc/server/ServerObjectMappingUtils.java | 19 +- .../service/rpc/server/ServerWorker.java | 18 +- .../service/storage/StorageConfig.java | 18 +- .../service/storage/StorageService.java | 18 +- .../iginx/filesystem/struct/DataTarget.java | 18 +- .../iginx/filesystem/struct/FileManager.java | 18 +- .../filesystem/struct/FileStructure.java | 18 +- .../struct/FileStructureManager.java | 18 +- .../exception/FileStructureException.java | 18 +- .../struct/exception/NoSuchUnitException.java | 18 +- .../legacy/filesystem/LegacyFilesystem.java | 18 +- .../filesystem/LegacyFilesystemWrapper.java | 18 +- ...FileSystemTaskExecuteFailureException.java | 18 +- .../exception/FilesystemException.java | 19 +- .../legacy/filesystem/exec/Executor.java | 19 +- .../filesystem/exec/FileSystemManager.java | 19 +- .../legacy/filesystem/exec/LocalExecutor.java | 19 +- .../filesystem/file/DefaultFileOperator.java | 19 +- .../legacy/filesystem/file/IFileOperator.java | 19 +- .../filesystem/file/entity/FileMeta.java | 19 +- .../FileSystemHistoryQueryRowStream.java | 19 +- .../entity/FileSystemQueryRowStream.java | 19 +- .../query/entity/FileSystemResultTable.java | 19 +- .../filesystem/query/entity/Record.java | 19 +- .../legacy/filesystem/shared/Constant.java | 19 +- .../legacy/filesystem/shared/FileType.java | 19 +- .../filesystem/tools/FilePathUtils.java | 19 +- .../filesystem/tools/LimitedSizeMap.java | 19 +- .../legacy/filesystem/tools/MemoryPool.java | 19 +- .../struct/legacy/parquet/LegacyParquet.java | 18 +- .../legacy/parquet/LegacyParquetWrapper.java | 18 +- .../struct/legacy/parquet/db/Database.java | 19 +- .../legacy/parquet/db/lsm/OneTierDB.java | 19 +- .../legacy/parquet/db/lsm/api/ReadWriter.java | 19 +- .../legacy/parquet/db/lsm/api/TableMeta.java | 19 +- .../parquet/db/lsm/buffer/ActiveMemTable.java | 18 +- .../db/lsm/buffer/ArchivedMemTable.java | 18 +- .../parquet/db/lsm/buffer/DataBuffer.java | 19 +- .../parquet/db/lsm/buffer/MemColumn.java | 18 +- .../parquet/db/lsm/buffer/MemTable.java | 18 +- .../parquet/db/lsm/buffer/MemTableQueue.java | 18 +- .../parquet/db/lsm/buffer/chunk/Chunk.java | 18 +- .../db/lsm/buffer/chunk/IndexedChunk.java | 18 +- .../db/lsm/buffer/chunk/IndexedChunkType.java | 18 +- .../db/lsm/buffer/chunk/NoIndexChunk.java | 18 +- .../db/lsm/buffer/chunk/SkipListChunk.java | 18 +- .../lsm/buffer/conflict/ConflictResolver.java | 18 +- .../buffer/conflict/ConflictResolverType.java | 18 +- .../db/lsm/buffer/conflict/NoneResolver.java | 18 +- .../conflict/RecursiveTryLockResolver.java | 18 +- .../buffer/conflict/ThreadPoolResolver.java | 18 +- .../lsm/buffer/conflict/TryLockResolver.java | 18 +- .../parquet/db/lsm/compact/Flusher.java | 18 +- .../parquet/db/lsm/table/DeletedTable.java | 19 +- .../db/lsm/table/DeletedTableMeta.java | 19 +- .../parquet/db/lsm/table/FileTable.java | 19 +- .../parquet/db/lsm/table/MemoryTable.java | 19 +- .../legacy/parquet/db/lsm/table/Table.java | 19 +- .../parquet/db/lsm/table/TableIndex.java | 19 +- .../parquet/db/lsm/table/TableStorage.java | 19 +- .../legacy/parquet/db/util/AreaSet.java | 19 +- .../parquet/db/util/SequenceGenerator.java | 19 +- .../legacy/parquet/db/util/WriteBatches.java | 18 +- .../db/util/iterator/AreaFilterScanner.java | 19 +- .../db/util/iterator/BatchPlaneScanner.java | 19 +- .../util/iterator/ColumnUnionRowScanner.java | 19 +- .../db/util/iterator/ConcatScanner.java | 19 +- .../db/util/iterator/DelegateScanner.java | 18 +- .../db/util/iterator/EmptyScanner.java | 19 +- .../db/util/iterator/EmtpyHeadRowScanner.java | 18 +- .../db/util/iterator/IteratorScanner.java | 19 +- .../db/util/iterator/LazyRowScanner.java | 18 +- .../db/util/iterator/ListenCloseScanner.java | 18 +- .../db/util/iterator/RowConcatScanner.java | 18 +- .../db/util/iterator/RowScannerFactory.java | 18 +- .../db/util/iterator/RowUnionScanner.java | 19 +- .../parquet/db/util/iterator/Scanner.java | 19 +- .../parquet/db/util/iterator/SizeUtils.java | 19 +- .../legacy/parquet/manager/Manager.java | 19 +- .../manager/data/AggregatedRowStream.java | 18 +- .../parquet/manager/data/DataManager.java | 19 +- .../parquet/manager/data/DataViewWrapper.java | 19 +- .../manager/data/FilterRangeUtils.java | 19 +- .../parquet/manager/data/LongFormat.java | 19 +- .../parquet/manager/data/ObjectFormat.java | 19 +- .../manager/data/ParquetReadWriter.java | 19 +- .../parquet/manager/data/ProjectUtils.java | 19 +- .../manager/data/ScannerRowStream.java | 19 +- .../parquet/manager/data/SerializeUtils.java | 19 +- .../parquet/manager/data/SizeUtils.java | 19 +- .../parquet/manager/data/StringFormat.java | 19 +- .../manager/data/TombstoneStorage.java | 19 +- .../legacy/parquet/manager/dummy/Column.java | 19 +- .../legacy/parquet/manager/dummy/Field.java | 19 +- .../legacy/parquet/manager/dummy/Loader.java | 19 +- .../manager/dummy/NewQueryRowStream.java | 19 +- .../legacy/parquet/manager/dummy/Storer.java | 19 +- .../legacy/parquet/manager/dummy/Table.java | 19 +- .../parquet/manager/utils/RangeUtils.java | 19 +- .../parquet/manager/utils/TagKVUtils.java | 19 +- .../struct/legacy/parquet/util/Awaitable.java | 18 +- .../struct/legacy/parquet/util/CachePool.java | 19 +- .../legacy/parquet/util/CloseableHolders.java | 18 +- .../struct/legacy/parquet/util/Constants.java | 19 +- .../parquet/util/NoexceptAutoCloseable.java | 18 +- .../parquet/util/NoexceptAutoCloseables.java | 18 +- .../legacy/parquet/util/ParseUtils.java | 19 +- .../struct/legacy/parquet/util/Shared.java | 19 +- .../legacy/parquet/util/SingleCache.java | 18 +- .../parquet/util/StorageProperties.java | 19 +- .../parquet/util/arrow/ArrowFieldTypes.java | 18 +- .../parquet/util/arrow/ArrowFields.java | 18 +- .../legacy/parquet/util/arrow/ArrowTypes.java | 18 +- .../parquet/util/arrow/ArrowVectors.java | 18 +- .../exception/InvalidFieldNameException.java | 19 +- .../util/exception/IsClosedException.java | 19 +- .../util/exception/NotIntegrityException.java | 19 +- .../util/exception/SchemaException.java | 19 +- .../exception/StorageClosedException.java | 18 +- .../util/exception/StorageException.java | 19 +- .../exception/StorageRuntimeException.java | 19 +- .../util/exception/TimeoutException.java | 19 +- .../exception/TypeConflictedException.java | 19 +- .../exception/UnsupportedFilterException.java | 19 +- .../parquet/util/iterator/DedupIterator.java | 18 +- .../util/iterator/StableMergeIterator.java | 18 +- .../filesystem/struct/tree/FileTree.java | 18 +- .../struct/tree/FileTreeConfig.java | 18 +- .../struct/tree/FileTreeManager.java | 18 +- .../struct/tree/query/AbstractQuerier.java | 18 +- .../filesystem/struct/tree/query/Querier.java | 18 +- .../struct/tree/query/Queriers.java | 18 +- .../struct/tree/query/ftj/FormatQuerier.java | 18 +- .../tree/query/ftj/FormatQuerierBuilder.java | 18 +- .../ftj/FormatQuerierBuilderFactory.java | 18 +- .../tree/query/ftj/UnionDirectoryQuerier.java | 18 +- .../ftj/UnionDirectoryQuerierBuilder.java | 18 +- .../UnionDirectoryQuerierBuilderFactory.java | 18 +- .../tree/query/ftj/UnionFormatTree.java | 18 +- .../filesystem/struct/units/UnitsMerger.java | 18 +- .../filesystem/src/main/thrift/core.thrift | 19 +- .../src/main/thrift/filesystem.thrift | 19 +- .../iginx/filesystem/common/FiltersTest.java | 18 +- .../format/parquet/ParquetTestUtils.java | 18 +- .../iginx/filesystem/server/ServerTest.java | 18 +- .../service/AbstractServiceTest.java | 18 +- .../remote/AbstractRemoteServiceTest.java | 18 +- .../LegacyParquetRemoteServiceTest.java | 18 +- .../service/storage/AbstractDummyTest.java | 18 +- .../storage/AbstractHistoryDataTest.java | 18 +- .../storage/AbstractStorageServiceTest.java | 18 +- .../service/storage/FileTreeDummyTest.java | 18 +- .../storage/FileTreeParquetDummyTest.java | 18 +- .../storage/LegacyParquetHistoryDataTest.java | 18 +- .../LegacyParquetStorageServiceTest.java | 18 +- .../db/common/utils/SerializeUtilsTest.java | 19 +- .../parquet/io/ParquetFormatIOTest.java | 19 +- .../manager/data/FilterRangeUtilsTest.java | 19 +- .../struct/tree/FileTreeConfigTest.java | 18 +- .../iginx/filesystem/test/DataValidator.java | 18 +- .../filesystem/test/DataViewGenerator.java | 18 +- .../iginx/filesystem/test/RowsBuilder.java | 18 +- .../iginx/filesystem/test/TableBuilder.java | 18 +- dataSource/influxdb/pom.xml | 18 +- .../iginx/influxdb/InfluxDBStorage.java | 18 +- .../influxdb/exception/InfluxDBException.java | 19 +- .../InfluxDBTaskExecuteFailureException.java | 18 +- .../entity/InfluxDBHistoryQueryRowStream.java | 18 +- .../query/entity/InfluxDBQueryRowStream.java | 18 +- .../influxdb/query/entity/InfluxDBSchema.java | 18 +- .../influxdb/tools/DataTypeTransformer.java | 19 +- .../influxdb/tools/FilterTransformer.java | 18 +- .../influxdb/tools/SchemaTransformer.java | 19 +- .../iginx/influxdb/tools/TagFilterUtils.java | 19 +- .../iginx/influxdb/tools/TimeUtils.java | 19 +- dataSource/iotdb12/pom.xml | 18 +- .../tsinghua/iginx/iotdb/IoTDBStorage.java | 18 +- .../iginx/iotdb/exception/IoTDBException.java | 19 +- .../IoTDBTaskExecuteFailureException.java | 19 +- .../query/entity/IoTDBQueryRowStream.java | 18 +- .../iotdb/tools/DataTypeTransformer.java | 18 +- .../iginx/iotdb/tools/DataViewWrapper.java | 18 +- .../iginx/iotdb/tools/FilterTransformer.java | 18 +- .../iginx/iotdb/tools/TagKVUtils.java | 18 +- dataSource/mongodb/pom.xml | 18 +- .../iginx/mongodb/MongoDBStorage.java | 19 +- .../iginx/mongodb/dummy/DummyQuery.java | 19 +- .../iginx/mongodb/dummy/FilterUtils.java | 19 +- .../iginx/mongodb/dummy/FindRowStream.java | 19 +- .../iginx/mongodb/dummy/NameUtils.java | 19 +- .../iginx/mongodb/dummy/PathTree.java | 19 +- .../iginx/mongodb/dummy/QueryRowStream.java | 19 +- .../iginx/mongodb/dummy/QueryUtils.java | 19 +- .../iginx/mongodb/dummy/ResultColumn.java | 19 +- .../iginx/mongodb/dummy/ResultRow.java | 19 +- .../iginx/mongodb/dummy/ResultTable.java | 19 +- .../iginx/mongodb/dummy/SampleQuery.java | 19 +- .../iginx/mongodb/dummy/SchemaSample.java | 19 +- .../iginx/mongodb/dummy/TypeUtils.java | 19 +- .../iginx/mongodb/entity/ColumnQuery.java | 19 +- .../iginx/mongodb/entity/JoinQuery.java | 19 +- .../iginx/mongodb/entity/SourceTable.java | 19 +- .../iginx/mongodb/tools/FilterUtils.java | 19 +- .../iginx/mongodb/tools/NameUtils.java | 19 +- .../iginx/mongodb/tools/TypeUtils.java | 19 +- .../iginx/mongodb/dummy/TypeUtilsTest.java | 19 +- dataSource/pom.xml | 18 +- dataSource/redis/pom.xml | 18 +- .../tsinghua/iginx/redis/RedisStorage.java | 19 +- .../tsinghua/iginx/redis/entity/Column.java | 19 +- .../redis/entity/RedisQueryRowStream.java | 19 +- .../tsinghua/iginx/redis/tools/DataCoder.java | 19 +- .../iginx/redis/tools/DataTransformer.java | 19 +- .../iginx/redis/tools/DataViewWrapper.java | 19 +- .../iginx/redis/tools/FilterUtils.java | 19 +- .../iginx/redis/tools/TagKVUtils.java | 18 +- dataSource/relational/pom.xml | 18 +- .../iginx/relational/RelationalStorage.java | 18 +- .../transformer/IDataTypeTransformer.java | 19 +- .../transformer/JDBCDataTypeTransformer.java | 19 +- .../PostgreSQLDataTypeTransformer.java | 19 +- .../exception/RelationalException.java | 19 +- ...RelationalTaskExecuteFailureException.java | 19 +- .../meta/AbstractRelationalMeta.java | 19 +- .../iginx/relational/meta/JDBCMeta.java | 19 +- .../query/entity/RelationQueryRowStream.java | 19 +- .../iginx/relational/tools/ColumnField.java | 19 +- .../iginx/relational/tools/Constants.java | 19 +- .../relational/tools/FilterTransformer.java | 18 +- .../iginx/relational/tools/HashUtils.java | 19 +- .../relational/tools/RelationSchema.java | 19 +- .../iginx/relational/tools/TagKVUtils.java | 19 +- .../resources/mysql-meta-template.properties | 18 +- .../main/resources/oceanbase-meta.properties | 18 +- .../postgresql-meta-template.properties | 18 +- dependency/pom.xml | 18 +- docker/client/Dockerfile | 18 +- docker/client/build-no-maven.bat | 18 +- docker/client/build-no-maven.sh | 20 +- docker/client/build.bat | 18 +- docker/client/build.sh | 20 +- docker/client/run_docker.bat | 18 +- docker/client/run_docker.sh | 20 +- docker/oneShot-filestore/Dockerfile | 18 +- .../build_and_run_iginx_docker.bat | 18 +- .../build_and_run_iginx_docker.sh | 18 +- docker/oneShot-filestore/docker-compose.yaml | 18 +- docker/oneShot/Dockerfile | 18 +- docker/oneShot/build_and_run_iginx_docker.bat | 18 +- docker/oneShot/build_and_run_iginx_docker.sh | 18 +- docker/oneShot/docker-compose.yaml | 18 +- .../build_iginx_docker.bat | 18 +- .../onlyIginx-filestore/build_iginx_docker.sh | 20 +- .../onlyIginx-filestore/run_iginx_docker.bat | 18 +- .../onlyIginx-filestore/run_iginx_docker.sh | 20 +- docker/onlyIginx/build_iginx_docker.bat | 18 +- docker/onlyIginx/build_iginx_docker.sh | 18 +- docker/onlyIginx/run_iginx_docker.bat | 18 +- docker/onlyIginx/run_iginx_docker.sh | 18 +- example/pom.xml | 18 +- .../session/IginXStreamSessionExample.java | 19 +- .../iginx/session/InfluxDBSessionExample.java | 18 +- .../session/IoTDBAfterDilatationExample.java | 18 +- .../session/IoTDBBeforeDilatationExample.java | 18 +- .../iginx/session/IoTDBSessionExample.java | 18 +- .../session/IoTDBSessionPoolExample.java | 19 +- .../iginx/session/NewSessionExample.java | 18 +- .../NewSessionNotSupportedQueryExample.java | 18 +- .../NewSessionNotSupportedWriteExample.java | 18 +- .../iginx/session/OpenTSDBSessionExample.java | 19 +- .../iginx/session/ParquetServerExample.java | 19 +- .../iginx/session/ParquetSessionExample.java | 19 +- .../session/PostgreSQLSessionExample.java | 18 +- .../iginx/session/SQLSessionExample.java | 19 +- .../iginx/session/TagKVSessionExample.java | 19 +- .../session/TimescaleDBSessionExample.java | 18 +- .../iginx/session/TransformCompare.java | 19 +- .../iginx/session/TransformExample.java | 19 +- .../iginx/session/UDFCompareToSys.java | 19 +- .../tsinghua/iginx/session/UDFExample.java | 19 +- .../main/resources/TransformJobExample.yaml | 18 +- .../src/main/resources/transformer_add_one.py | 20 +- example/src/main/resources/transformer_avg.py | 20 +- .../src/main/resources/transformer_count.py | 20 +- example/src/main/resources/transformer_max.py | 20 +- example/src/main/resources/transformer_min.py | 20 +- .../src/main/resources/transformer_row_sum.py | 20 +- example/src/main/resources/transformer_sum.py | 20 +- example/src/main/resources/udaf_count.py | 20 +- example/src/main/resources/udtf_sin.py | 20 +- jdbc/pom.xml | 18 +- .../cn/edu/tsinghua/iginx/jdbc/Config.java | 19 +- .../cn/edu/tsinghua/iginx/jdbc/Constant.java | 19 +- .../tsinghua/iginx/jdbc/IginXConnection.java | 19 +- .../iginx/jdbc/IginXConnectionParams.java | 19 +- .../tsinghua/iginx/jdbc/IginXDataSource.java | 19 +- .../iginx/jdbc/IginXDatabaseMetadata.java | 19 +- .../edu/tsinghua/iginx/jdbc/IginXDriver.java | 19 +- .../iginx/jdbc/IginXPreparedStatement.java | 19 +- .../iginx/jdbc/IginXResultMetadata.java | 19 +- .../tsinghua/iginx/jdbc/IginXResultSet.java | 19 +- .../tsinghua/iginx/jdbc/IginXStatement.java | 19 +- .../iginx/jdbc/IginxUrlException.java | 19 +- .../cn/edu/tsinghua/iginx/jdbc/Utils.java | 19 +- .../iginx/jdbc/tsdb/IginxConnection.java | 18 +- .../tsinghua/iginx/jdbc/tsdb/IginxDriver.java | 18 +- .../jdbc/tsdb/IginxPreparedStatement.java | 18 +- .../iginx/jdbc/tsdb/IginxResultMetadata.java | 18 +- .../iginx/jdbc/tsdb/IginxResultSet.java | 18 +- .../iginx/jdbc/tsdb/IginxStatement.java | 18 +- .../iginx/jdbc/tsdb/util/AuthorityInfo.java | 18 +- jdbc/src/test/java/BatchTest.java | 19 +- jdbc/src/test/java/ConnectionParamsTest.java | 19 +- jdbc/src/test/java/ExampleTest.java | 19 +- jdbc/src/test/java/PreparedStatementTest.java | 19 +- jdbc/src/test/java/ResultMetadataTest.java | 19 +- jdbc/src/test/java/ResultSetTest.java | 19 +- jdbc/src/test/java/TSDBClientIT.java | 18 +- jdbc/src/test/java/TestUtils.java | 19 +- optimizer/pom.xml | 18 +- .../optimizer/FilterFragmentOptimizer.java | 19 +- .../optimizer/FilterPushDownOptimizer.java | 19 +- .../logical/optimizer/RemoveNotOptimizer.java | 19 +- .../iginx/logical/optimizer/core/Operand.java | 19 +- .../iginx/logical/optimizer/core/Planner.java | 19 +- .../logical/optimizer/core/RuleCall.java | 19 +- .../core/iterator/DeepFirstIterator.java | 19 +- .../core/iterator/LeveledIterator.java | 19 +- .../optimizer/core/iterator/MatchOrder.java | 19 +- .../iterator/ReverseDeepFirstIterator.java | 19 +- .../core/iterator/ReverseLeveledIterator.java | 19 +- .../optimizer/core/iterator/TreeIterator.java | 19 +- .../logical/optimizer/rbo/RBORuleCall.java | 19 +- .../optimizer/rbo/RuleBasedOptimizer.java | 19 +- .../optimizer/rbo/RuleBasedPlanner.java | 19 +- .../optimizer/rules/ColumnPruningRule.java | 19 +- .../rules/ConstantPropagationRule.java | 19 +- .../rules/FilterConstantFoldingRule.java | 19 +- .../rules/FilterJoinTransposeRule.java | 19 +- .../FilterPushDownAddSchemaPrefixRule.java | 19 +- .../rules/FilterPushDownGroupByRule.java | 19 +- .../FilterPushDownPathUnionJoinRule.java | 19 +- .../FilterPushDownProjectReorderSortRule.java | 19 +- .../rules/FilterPushDownRenameRule.java | 19 +- .../rules/FilterPushDownSelectRule.java | 19 +- .../rules/FilterPushDownSetOpRule.java | 19 +- .../rules/FilterPushDownTransformRule.java | 19 +- .../FilterPushIntoJoinConditionRule.java | 19 +- .../rules/FilterPushOutJoinConditionRule.java | 19 +- .../rules/FragmentPruningByFilterRule.java | 19 +- .../rules/FragmentPruningByPatternRule.java | 19 +- .../rules/FunctionDistinctEliminateRule.java | 19 +- .../rules/InExistsDistinctEliminateRule.java | 19 +- .../optimizer/rules/NotFilterRemoveRule.java | 19 +- .../RowTransformConstantFoldingRule.java | 19 +- .../iginx/logical/optimizer/rules/Rule.java | 19 +- .../optimizer/rules/RuleCollection.java | 19 +- .../logical/optimizer/rules/RuleStrategy.java | 19 +- ...SetTransformPushDownPathUnionJoinRule.java | 18 +- .../naive/NaiveConstraintManager.java | 18 +- .../naive/NaivePhysicalOptimizer.java | 18 +- .../naive/NaiveReplicaDispatcher.java | 18 +- .../iginx/physical/optimizer/rule/Rule.java | 18 +- .../iginx/optimizer/IteratorTest.java | 19 +- .../tsinghua/iginx/optimizer/OperandTest.java | 19 +- .../edu/tsinghua/iginx/optimizer/RBOTest.java | 19 +- .../iginx/optimizer/RBOTestUtils.java | 19 +- .../tsinghua/iginx/optimizer/TreeBuilder.java | 19 +- .../tsinghua/iginx/optimizer/TreePrinter.java | 19 +- pom.xml | 18 +- session/pom.xml | 18 +- .../iginx/exception/SessionException.java | 18 +- .../cn/edu/tsinghua/iginx/pool/IginxInfo.java | 19 +- .../edu/tsinghua/iginx/pool/SessionPool.java | 19 +- .../tsinghua/iginx/session/ClusterInfo.java | 18 +- .../cn/edu/tsinghua/iginx/session/Column.java | 18 +- .../iginx/session/CurveMatchResult.java | 19 +- .../cn/edu/tsinghua/iginx/session/Point.java | 18 +- .../tsinghua/iginx/session/QueryDataSet.java | 18 +- .../edu/tsinghua/iginx/session/Session.java | 18 +- .../session/SessionAggregateQueryDataSet.java | 19 +- .../session/SessionExecuteSqlResult.java | 18 +- .../iginx/session/SessionQueryDataSet.java | 18 +- .../tsinghua/iginx/session_v2/Arguments.java | 18 +- .../iginx/session_v2/AsyncWriteClient.java | 18 +- .../iginx/session_v2/ClusterClient.java | 18 +- .../iginx/session_v2/DeleteClient.java | 18 +- .../iginx/session_v2/IginXClient.java | 18 +- .../iginx/session_v2/IginXClientFactory.java | 18 +- .../iginx/session_v2/IginXClientOptions.java | 18 +- .../iginx/session_v2/QueryClient.java | 18 +- .../iginx/session_v2/TransformClient.java | 19 +- .../iginx/session_v2/UsersClient.java | 18 +- .../iginx/session_v2/WriteClient.java | 18 +- .../iginx/session_v2/annotations/Field.java | 18 +- .../session_v2/annotations/Measurement.java | 18 +- .../iginx/session_v2/domain/ClusterInfo.java | 18 +- .../iginx/session_v2/domain/Storage.java | 18 +- .../iginx/session_v2/domain/Task.java | 19 +- .../iginx/session_v2/domain/Transform.java | 19 +- .../iginx/session_v2/domain/User.java | 18 +- .../session_v2/exception/IginXException.java | 18 +- .../internal/AbstractFunctionClient.java | 18 +- .../internal/AsyncWriteClientImpl.java | 18 +- .../internal/ClusterClientImpl.java | 18 +- .../session_v2/internal/DeleteClientImpl.java | 18 +- .../session_v2/internal/IginXClientImpl.java | 18 +- .../internal/MeasurementMapper.java | 18 +- .../session_v2/internal/MeasurementUtils.java | 19 +- .../session_v2/internal/QueryClientImpl.java | 18 +- .../session_v2/internal/ResultMapper.java | 18 +- .../internal/TransformClientImpl.java | 19 +- .../session_v2/internal/UsersClientImpl.java | 18 +- .../session_v2/internal/WriteClientImpl.java | 18 +- .../session_v2/query/AggregateQuery.java | 18 +- .../session_v2/query/DownsampleQuery.java | 18 +- .../iginx/session_v2/query/IginXColumn.java | 18 +- .../iginx/session_v2/query/IginXHeader.java | 18 +- .../iginx/session_v2/query/IginXRecord.java | 18 +- .../iginx/session_v2/query/IginXTable.java | 18 +- .../iginx/session_v2/query/LastQuery.java | 18 +- .../iginx/session_v2/query/Query.java | 18 +- .../iginx/session_v2/query/SimpleQuery.java | 18 +- .../iginx/session_v2/write/Point.java | 18 +- .../iginx/session_v2/write/Record.java | 18 +- .../iginx/session_v2/write/Table.java | 18 +- .../edu/tsinghua/iginx/utils/StatusUtils.java | 18 +- session/src/test/java/ResultFormatTest.java | 19 +- session_py/example.py | 18 +- session_py/file_example.py | 20 +- session_py/iginx/iginx_pyclient/__init__.py | 18 +- .../iginx/iginx_pyclient/cluster_info.py | 18 +- session_py/iginx/iginx_pyclient/dataset.py | 18 +- session_py/iginx/iginx_pyclient/session.py | 18 +- .../iginx/iginx_pyclient/thrift/__init__.py | 18 +- .../iginx_pyclient/thrift/rpc/IService.py | 18 +- .../iginx_pyclient/thrift/rpc/__init__.py | 18 +- .../iginx_pyclient/thrift/rpc/constants.py | 18 +- .../iginx/iginx_pyclient/thrift/rpc/ttypes.py | 18 +- .../iginx/iginx_pyclient/time_series.py | 18 +- .../iginx/iginx_pyclient/utils/__init__.py | 18 +- .../iginx/iginx_pyclient/utils/bitmap.py | 18 +- .../iginx/iginx_pyclient/utils/byte_utils.py | 18 +- session_py/iginx/setup.py | 20 +- session_py/pom.xml | 18 +- shared/pom.xml | 18 +- .../iginx/constant/GlobalConstant.java | 19 +- .../exception/IginxRuntimeException.java | 19 +- .../tsinghua/iginx/exception/StatusCode.java | 18 +- .../UnsupportedDataTypeException.java | 18 +- .../iginx/exception/package-info.java | 19 +- .../cn/edu/tsinghua/iginx/utils/Bitmap.java | 18 +- .../edu/tsinghua/iginx/utils/ByteUtils.java | 18 +- .../cn/edu/tsinghua/iginx/utils/CSVUtils.java | 19 +- .../tsinghua/iginx/utils/CheckedFunction.java | 18 +- .../iginx/utils/CompressionUtils.java | 19 +- .../tsinghua/iginx/utils/CurveMatchUtils.java | 18 +- .../iginx/utils/DataTypeInferenceUtils.java | 18 +- .../tsinghua/iginx/utils/DataTypeUtils.java | 18 +- .../cn/edu/tsinghua/iginx/utils/EnvUtils.java | 18 +- .../cn/edu/tsinghua/iginx/utils/Escaper.java | 19 +- .../iginx/utils/FileCompareUtils.java | 19 +- .../edu/tsinghua/iginx/utils/FileReader.java | 19 +- .../edu/tsinghua/iginx/utils/FileUtils.java | 19 +- .../edu/tsinghua/iginx/utils/FormatUtils.java | 19 +- .../edu/tsinghua/iginx/utils/HostUtils.java | 19 +- .../edu/tsinghua/iginx/utils/JobFromYAML.java | 19 +- .../edu/tsinghua/iginx/utils/JsonUtils.java | 19 +- .../cn/edu/tsinghua/iginx/utils/Pair.java | 18 +- .../cn/edu/tsinghua/iginx/utils/RpcUtils.java | 18 +- .../tsinghua/iginx/utils/SerializeUtils.java | 18 +- .../edu/tsinghua/iginx/utils/ShellRunner.java | 19 +- .../tsinghua/iginx/utils/SnowFlakeUtils.java | 18 +- .../edu/tsinghua/iginx/utils/SortUtils.java | 18 +- .../edu/tsinghua/iginx/utils/StringUtils.java | 18 +- .../edu/tsinghua/iginx/utils/TagKVUtils.java | 18 +- .../tsinghua/iginx/utils/TaskFromYAML.java | 19 +- .../tsinghua/iginx/utils/ThriftConnPool.java | 19 +- .../edu/tsinghua/iginx/utils/TimeUtils.java | 18 +- .../edu/tsinghua/iginx/utils/ValueUtils.java | 19 +- .../edu/tsinghua/iginx/utils/YAMLReader.java | 19 +- .../edu/tsinghua/iginx/utils/YAMLWriter.java | 19 +- .../iginx/utils/CompressionUtilsTest.java | 19 +- .../edu/tsinghua/iginx/utils/EscaperTest.java | 19 +- .../tsinghua/iginx/utils/StringUtilsTest.java | 19 +- test/pom.xml | 18 +- .../iginx/shared/MockClassGenerator.java | 19 +- .../integration/client/ExportFileIT.java | 19 +- .../integration/client/ImportFileIT.java | 19 +- .../integration/compaction/CompactionIT.java | 19 +- .../integration/controller/Controller.java | 19 +- .../controller/TestEnvironmentController.java | 19 +- .../integration/datasource/DataSourceIT.java | 19 +- .../expansion/BaseCapacityExpansionIT.java | 19 +- .../expansion/BaseHistoryDataGenerator.java | 19 +- .../expansion/constant/Constant.java | 19 +- .../FileSystemCapacityExpansionIT.java | 19 +- .../FileSystemHistoryDataGenerator.java | 19 +- .../influxdb/InfluxDBCapacityExpansionIT.java | 19 +- .../InfluxDBHistoryDataGenerator.java | 19 +- .../iotdb/IoTDB12CapacityExpansionIT.java | 19 +- .../iotdb/IoTDB12HistoryDataGenerator.java | 19 +- .../mongodb/MongoDBCapacityExpansionIT.java | 19 +- .../mongodb/MongoDBHistoryDataGenerator.java | 19 +- .../mysql/MySQLCapacityExpansionIT.java | 19 +- .../mysql/MySQLHistoryDataGenerator.java | 19 +- .../PostgreSQLCapacityExpansionIT.java | 19 +- .../PostgreSQLHistoryDataGenerator.java | 19 +- .../redis/RedisCapacityExpansionIT.java | 19 +- .../redis/RedisHistoryDataGenerator.java | 19 +- .../expansion/utils/DataViewGenerator.java | 18 +- .../expansion/utils/SQLTestTools.java | 19 +- .../func/auth/UserManagementIT.java | 18 +- .../func/rest/RestAnnotationIT.java | 19 +- .../iginx/integration/func/rest/RestIT.java | 19 +- .../func/session/BaseSessionIT.java | 19 +- .../func/session/InsertAPIType.java | 19 +- .../func/session/NewSessionIT.java | 19 +- .../integration/func/session/PySessionIT.java | 19 +- .../func/session/SQLCompareIT.java | 19 +- .../func/session/SessionConcurrencyIT.java | 19 +- .../integration/func/session/SessionIT.java | 18 +- .../func/session/SessionPoolIT.java | 19 +- .../integration/func/session/SessionV2IT.java | 19 +- .../func/session/TestDataSection.java | 19 +- .../integration/func/sql/SQLSessionIT.java | 19 +- .../func/sql/SQLSessionPoolIT.java | 19 +- .../iginx/integration/func/tag/TagIT.java | 19 +- .../integration/func/udf/RemoteUDFIT.java | 19 +- .../integration/func/udf/TransformIT.java | 18 +- .../iginx/integration/func/udf/UDFIT.java | 18 +- .../integration/func/udf/UDFTestTools.java | 19 +- .../integration/mds/ETCDSyncProtocolTest.java | 19 +- .../integration/mds/IMetaManagerTest.java | 18 +- .../iginx/integration/mds/RandomUtils.java | 19 +- .../integration/mds/SyncProtocolTest.java | 19 +- .../mds/ZooKeeperSyncProtocolTest.java | 19 +- .../integration/other/FileLoaderTest.java | 19 +- .../integration/other/TimePrecisionIT.java | 19 +- .../iginx/integration/other/UDFPathIT.java | 19 +- .../MixClusterShowColumnsRegressionTest.java | 19 +- .../integration/tool/CombinedInsertTests.java | 19 +- .../iginx/integration/tool/ConfLoader.java | 19 +- .../iginx/integration/tool/DBConf.java | 19 +- .../integration/tool/MultiConnection.java | 19 +- .../iginx/integration/tool/SQLExecutor.java | 19 +- .../integration/tool/TempDummyDataSource.java | 18 +- .../iginx/integration/tool/TestUtils.java | 19 +- .../integration/tpch/TPCHDataGeneratorIT.java | 18 +- .../tpch/TPCHRegressionMainIT.java | 19 +- .../integration/tpch/TPCHRegressionNewIT.java | 18 +- .../iginx/integration/tpch/TPCHUtils.java | 18 +- thrift/pom.xml | 18 +- thrift/src/main/thrift/rpc.thrift | 18 +- udf_funcs/python_scripts/class_loader.py | 20 +- udf_funcs/python_scripts/constant.py | 20 +- udf_funcs/python_scripts/py_worker.py | 20 +- udf_funcs/python_scripts/transformer_apply.py | 20 +- .../transformer_between_time.py | 20 +- udf_funcs/python_scripts/transformer_bool.py | 20 +- .../python_scripts/transformer_bottom.py | 20 +- .../python_scripts/transformer_distinct.py | 20 +- .../python_scripts/transformer_filter.py | 20 +- udf_funcs/python_scripts/transformer_head.py | 20 +- udf_funcs/python_scripts/transformer_loc.py | 20 +- udf_funcs/python_scripts/transformer_mean.py | 20 +- udf_funcs/python_scripts/transformer_skew.py | 20 +- .../python_scripts/transformer_sortindex.py | 20 +- .../python_scripts/transformer_spread.py | 20 +- udf_funcs/python_scripts/udf_avg.py | 20 +- udf_funcs/python_scripts/udf_count.py | 20 +- udf_funcs/python_scripts/udf_max.py | 20 +- udf_funcs/python_scripts/udf_max_with_key.py | 20 +- udf_funcs/python_scripts/udf_min.py | 20 +- udf_funcs/python_scripts/udf_sum.py | 20 +- udf_funcs/python_scripts/udsf_reverse_rows.py | 20 +- udf_funcs/python_scripts/udsf_transpose.py | 20 +- udf_funcs/python_scripts/udtf_arccos.py | 18 +- .../python_scripts/udtf_column_expand.py | 20 +- udf_funcs/python_scripts/udtf_cos.py | 20 +- udf_funcs/python_scripts/udtf_key_add_one.py | 20 +- udf_funcs/python_scripts/udtf_multiply.py | 20 +- udf_funcs/python_scripts/udtf_pow.py | 20 +- 1232 files changed, 12518 insertions(+), 11207 deletions(-) diff --git a/LICENSE b/LICENSE index f288702d2f..153d416dc8 100644 --- a/LICENSE +++ b/LICENSE @@ -1,674 +1,165 @@ - GNU GENERAL PUBLIC LICENSE + GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. \ No newline at end of file diff --git a/LICENSE_HEADER b/LICENSE_HEADER index f7bb1e9553..92cb2d8c5d 100644 --- a/LICENSE_HEADER +++ b/LICENSE_HEADER @@ -1,15 +1,17 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University +TSIGinX@gmail.com -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. diff --git a/antlr/pom.xml b/antlr/pom.xml index b376f3738f..6de0fab349 100644 --- a/antlr/pom.xml +++ b/antlr/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ grammar Sql; diff --git a/assembly/pom.xml b/assembly/pom.xml index e191224eac..39adba8d12 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/component/iginx-filesystem-driver.xml b/assembly/src/assembly/component/iginx-filesystem-driver.xml index f75b8d4ff2..9ec8d24838 100644 --- a/assembly/src/assembly/component/iginx-filesystem-driver.xml +++ b/assembly/src/assembly/component/iginx-filesystem-driver.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/component/iginx-influxdb-driver.xml b/assembly/src/assembly/component/iginx-influxdb-driver.xml index ed23d8e62b..4c70e872e7 100644 --- a/assembly/src/assembly/component/iginx-influxdb-driver.xml +++ b/assembly/src/assembly/component/iginx-influxdb-driver.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/component/iginx-iotdb12-driver.xml b/assembly/src/assembly/component/iginx-iotdb12-driver.xml index 09662fb317..35002b77a8 100644 --- a/assembly/src/assembly/component/iginx-iotdb12-driver.xml +++ b/assembly/src/assembly/component/iginx-iotdb12-driver.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/component/iginx-mongodb-driver.xml b/assembly/src/assembly/component/iginx-mongodb-driver.xml index a6aca13d9f..2d3b1fecc3 100644 --- a/assembly/src/assembly/component/iginx-mongodb-driver.xml +++ b/assembly/src/assembly/component/iginx-mongodb-driver.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/component/iginx-redis-driver.xml b/assembly/src/assembly/component/iginx-redis-driver.xml index 3ed6abbceb..3ad0788bb1 100644 --- a/assembly/src/assembly/component/iginx-redis-driver.xml +++ b/assembly/src/assembly/component/iginx-redis-driver.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/component/iginx-relational-driver.xml b/assembly/src/assembly/component/iginx-relational-driver.xml index 7a64990cf1..1fd8872792 100644 --- a/assembly/src/assembly/component/iginx-relational-driver.xml +++ b/assembly/src/assembly/component/iginx-relational-driver.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/component/include-zookeeper.xml b/assembly/src/assembly/component/include-zookeeper.xml index 35fd635370..632d649917 100644 --- a/assembly/src/assembly/component/include-zookeeper.xml +++ b/assembly/src/assembly/component/include-zookeeper.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/include.xml b/assembly/src/assembly/include.xml index 5aa0d8b005..10f8b197d6 100644 --- a/assembly/src/assembly/include.xml +++ b/assembly/src/assembly/include.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/assembly/src/assembly/resources/fast-deploy/clearAllData.bat b/assembly/src/assembly/resources/fast-deploy/clearAllData.bat index 9475302c8e..4304581440 100644 --- a/assembly/src/assembly/resources/fast-deploy/clearAllData.bat +++ b/assembly/src/assembly/resources/fast-deploy/clearAllData.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM @echo off diff --git a/assembly/src/assembly/resources/fast-deploy/clearAllData.sh b/assembly/src/assembly/resources/fast-deploy/clearAllData.sh index 7d5a423cd2..adcbbbeb6f 100644 --- a/assembly/src/assembly/resources/fast-deploy/clearAllData.sh +++ b/assembly/src/assembly/resources/fast-deploy/clearAllData.sh @@ -2,21 +2,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + REMOVE_DIRS=( include/apache-zookeeper/data diff --git a/assembly/src/assembly/resources/fast-deploy/runIGinXOn1Host.bat b/assembly/src/assembly/resources/fast-deploy/runIGinXOn1Host.bat index dd353eaee1..5ca5d19e8d 100644 --- a/assembly/src/assembly/resources/fast-deploy/runIGinXOn1Host.bat +++ b/assembly/src/assembly/resources/fast-deploy/runIGinXOn1Host.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM @echo off diff --git a/assembly/src/assembly/resources/fast-deploy/runIGinXOn1Host.sh b/assembly/src/assembly/resources/fast-deploy/runIGinXOn1Host.sh index ab892d2a10..2df76c8e12 100644 --- a/assembly/src/assembly/resources/fast-deploy/runIGinXOn1Host.sh +++ b/assembly/src/assembly/resources/fast-deploy/runIGinXOn1Host.sh @@ -2,21 +2,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + basepath=$(cd `dirname $0`; pwd) diff --git a/assembly/src/assembly/resources/fast-deploy/runIGinXOn1HostWithPemjax.bat b/assembly/src/assembly/resources/fast-deploy/runIGinXOn1HostWithPemjax.bat index 01e5feebbd..eeafc69c5d 100644 --- a/assembly/src/assembly/resources/fast-deploy/runIGinXOn1HostWithPemjax.bat +++ b/assembly/src/assembly/resources/fast-deploy/runIGinXOn1HostWithPemjax.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM @echo off diff --git a/assembly/src/assembly/resources/fast-deploy/runIGinXOn1HostWithPemjax.sh b/assembly/src/assembly/resources/fast-deploy/runIGinXOn1HostWithPemjax.sh index 53a43ee417..79496676ab 100644 --- a/assembly/src/assembly/resources/fast-deploy/runIGinXOn1HostWithPemjax.sh +++ b/assembly/src/assembly/resources/fast-deploy/runIGinXOn1HostWithPemjax.sh @@ -2,21 +2,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + basepath=$(cd `dirname $0`; pwd) diff --git a/assembly/src/assembly/resources/fast-deploy/stopIGinX.bat b/assembly/src/assembly/resources/fast-deploy/stopIGinX.bat index cf29bcee9c..a2fd690566 100644 --- a/assembly/src/assembly/resources/fast-deploy/stopIGinX.bat +++ b/assembly/src/assembly/resources/fast-deploy/stopIGinX.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM @echo off diff --git a/assembly/src/assembly/resources/fast-deploy/stopIGinX.sh b/assembly/src/assembly/resources/fast-deploy/stopIGinX.sh index a44950bef7..12f7074554 100644 --- a/assembly/src/assembly/resources/fast-deploy/stopIGinX.sh +++ b/assembly/src/assembly/resources/fast-deploy/stopIGinX.sh @@ -2,21 +2,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + echo "Kill IGinX" jps | grep -w 'Iginx'| awk '{print $1}' | xargs -r kill -9 diff --git a/assembly/src/assembly/server.xml b/assembly/src/assembly/server.xml index 10b108b485..08b91faf18 100644 --- a/assembly/src/assembly/server.xml +++ b/assembly/src/assembly/server.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/client/pom.xml b/client/pom.xml index b34ae71707..08331312fd 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/client/src/assembly/resources/sbin/start_cli.bat b/client/src/assembly/resources/sbin/start_cli.bat index 1abc13645a..ce87ed7cb3 100644 --- a/client/src/assembly/resources/sbin/start_cli.bat +++ b/client/src/assembly/resources/sbin/start_cli.bat @@ -1,22 +1,23 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM - @echo off @REM You can put your env variable here diff --git a/client/src/assembly/resources/sbin/start_cli.sh b/client/src/assembly/resources/sbin/start_cli.sh index 4508777298..afca650237 100755 --- a/client/src/assembly/resources/sbin/start_cli.sh +++ b/client/src/assembly/resources/sbin/start_cli.sh @@ -2,21 +2,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University diff --git a/client/src/main/java/cn/edu/tsinghua/iginx/client/IginxClient.java b/client/src/main/java/cn/edu/tsinghua/iginx/client/IginxClient.java index 136bc3c4c3..be317a3388 100644 --- a/client/src/main/java/cn/edu/tsinghua/iginx/client/IginxClient.java +++ b/client/src/main/java/cn/edu/tsinghua/iginx/client/IginxClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.client; diff --git a/client/src/main/java/cn/edu/tsinghua/iginx/client/exception/ClientException.java b/client/src/main/java/cn/edu/tsinghua/iginx/client/exception/ClientException.java index cc6d066fb0..e3c6b27f6d 100644 --- a/client/src/main/java/cn/edu/tsinghua/iginx/client/exception/ClientException.java +++ b/client/src/main/java/cn/edu/tsinghua/iginx/client/exception/ClientException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.client.exception; diff --git a/conf/config.properties b/conf/config.properties index 2317db27f1..b4d91eba8b 100644 --- a/conf/config.properties +++ b/conf/config.properties @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # #################### diff --git a/conf/file-permission.properties b/conf/file-permission.properties index 1c012e7053..39263c9617 100644 --- a/conf/file-permission.properties +++ b/conf/file-permission.properties @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # This file is used to configure the accessType of the files in IGinX. diff --git a/conf/log4j2.properties b/conf/log4j2.properties index d8f750073b..541d3dd0c9 100644 --- a/conf/log4j2.properties +++ b/conf/log4j2.properties @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # Update log configuration from file every 30 seconds diff --git a/core/pom.xml b/core/pom.xml index aa6fc845be..d31a2d4ddb 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM @echo off diff --git a/core/src/assembly/resources/conf/iginx-env.sh b/core/src/assembly/resources/conf/iginx-env.sh index 8a5fcef13a..a4a3f24e58 100644 --- a/core/src/assembly/resources/conf/iginx-env.sh +++ b/core/src/assembly/resources/conf/iginx-env.sh @@ -2,19 +2,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # diff --git a/core/src/assembly/resources/sbin/start_iginx.bat b/core/src/assembly/resources/sbin/start_iginx.bat index 39b3e3b635..00625a5b76 100644 --- a/core/src/assembly/resources/sbin/start_iginx.bat +++ b/core/src/assembly/resources/sbin/start_iginx.bat @@ -1,22 +1,23 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM - @echo off echo ```````````````````````` echo Starting IGinX diff --git a/core/src/assembly/resources/sbin/start_iginx.sh b/core/src/assembly/resources/sbin/start_iginx.sh index 1a0e3da017..f62ca6ab17 100755 --- a/core/src/assembly/resources/sbin/start_iginx.sh +++ b/core/src/assembly/resources/sbin/start_iginx.sh @@ -2,19 +2,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # You can put your env variable here diff --git a/core/src/assembly/server.xml b/core/src/assembly/server.xml index 17e45d8748..f2e34a2313 100644 --- a/core/src/assembly/server.xml +++ b/core/src/assembly/server.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/Iginx.java b/core/src/main/java/cn/edu/tsinghua/iginx/Iginx.java index 858ef2dab9..d4bee959e6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/Iginx.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/Iginx.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java index 79d438e26a..4f1b89f279 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/auth/FilePermissionManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/auth/FilePermissionManager.java index 360e992765..e81494f5df 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/auth/FilePermissionManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/auth/FilePermissionManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.auth; import cn.edu.tsinghua.iginx.auth.entity.FileAccessType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/auth/SessionManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/auth/SessionManager.java index 2a6743d04f..691bc6b6e5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/auth/SessionManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/auth/SessionManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.auth; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/auth/UserManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/auth/UserManager.java index 10aa34992d..42da6e9358 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/auth/UserManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/auth/UserManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.auth; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/auth/entity/FileAccessType.java b/core/src/main/java/cn/edu/tsinghua/iginx/auth/entity/FileAccessType.java index 65660defd0..440ae88afa 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/auth/entity/FileAccessType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/auth/entity/FileAccessType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.auth.entity; public enum FileAccessType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/auth/utils/FilePermissionRuleNameFilters.java b/core/src/main/java/cn/edu/tsinghua/iginx/auth/utils/FilePermissionRuleNameFilters.java index b3ab3e344d..22a4714d9b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/auth/utils/FilePermissionRuleNameFilters.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/auth/utils/FilePermissionRuleNameFilters.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.auth.utils; import java.util.function.Predicate; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/Compaction.java b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/Compaction.java index 16957080d6..13cf4e212a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/Compaction.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/Compaction.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import cn.edu.tsinghua.iginx.engine.physical.PhysicalEngine; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/CompactionManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/CompactionManager.java index f974de27c1..9f413992bf 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/CompactionManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/CompactionManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/FragmentDeletionCompaction.java b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/FragmentDeletionCompaction.java index 34ffcd807e..d71ab4b788 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/FragmentDeletionCompaction.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/FragmentDeletionCompaction.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import cn.edu.tsinghua.iginx.engine.physical.PhysicalEngine; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/InstantCompaction.java b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/InstantCompaction.java index d99033f6d6..f03fed6f8d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/InstantCompaction.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/InstantCompaction.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import cn.edu.tsinghua.iginx.engine.physical.PhysicalEngine; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/LowAccessFragmentCompaction.java b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/LowAccessFragmentCompaction.java index c95b6b8526..7e01951833 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/LowAccessFragmentCompaction.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/LowAccessFragmentCompaction.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/LowWriteFragmentCompaction.java b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/LowWriteFragmentCompaction.java index 451938b9de..1e32da6e99 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/compaction/LowWriteFragmentCompaction.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/compaction/LowWriteFragmentCompaction.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java index 2695490666..754f579702 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.conf; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/ConfigDescriptor.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/ConfigDescriptor.java index 455e406197..120ff7e6d4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/ConfigDescriptor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/ConfigDescriptor.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.conf; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Constants.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Constants.java index b1b033da3e..a7c49282b4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Constants.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Constants.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.conf; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/FilePermissionConfig.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/FilePermissionConfig.java index 947cd6b4ec..81bbc6b043 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/FilePermissionConfig.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/FilePermissionConfig.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.conf; import cn.edu.tsinghua.iginx.conf.entity.FilePermissionDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/FileUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/FileUtils.java index 4134c92c70..118a3f7ccb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/FileUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/FileUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.conf; import java.io.File; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/entity/FilePermissionDescriptor.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/entity/FilePermissionDescriptor.java index 1e0db33c8d..c288ebafad 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/entity/FilePermissionDescriptor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/entity/FilePermissionDescriptor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.conf.entity; import cn.edu.tsinghua.iginx.auth.entity.FileAccessType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/parser/FilePermissionsParser.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/parser/FilePermissionsParser.java index cb92078aba..93d1a0115d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/parser/FilePermissionsParser.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/parser/FilePermissionsParser.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.conf.parser; import cn.edu.tsinghua.iginx.auth.entity.FileAccessType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/ContextBuilder.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/ContextBuilder.java index faf831ffcb..1ac71c6e92 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/ContextBuilder.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/ContextBuilder.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementBuilder.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementBuilder.java index 29e3e1c324..7d16e98a6e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementBuilder.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementBuilder.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementExecutor.java index c930477ce0..4982f53857 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementExecutor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.CLEAR_DUMMY_DATA_CAUTION; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/ConstraintChecker.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/ConstraintChecker.java index f2a363e3d1..d0a885b7c1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/ConstraintChecker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/ConstraintChecker.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.constraint; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/ConstraintCheckerManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/ConstraintCheckerManager.java index 510075ebd6..b8ca1b96e6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/ConstraintCheckerManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/ConstraintCheckerManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.constraint; import org.slf4j.Logger; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/NaiveConstraintChecker.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/NaiveConstraintChecker.java index a7a9e287ad..b18040a7ac 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/NaiveConstraintChecker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/constraint/NaiveConstraintChecker.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.constraint; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/AbstractGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/AbstractGenerator.java index 3b700a4627..7674569f35 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/AbstractGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/AbstractGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.generator; import cn.edu.tsinghua.iginx.engine.logical.optimizer.Optimizer; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/DeleteGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/DeleteGenerator.java index 3f36c7f4b6..c1e25f813c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/DeleteGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/DeleteGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.generator; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/GeneratorType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/GeneratorType.java index 001416474a..3e3b1383f1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/GeneratorType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/GeneratorType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.generator; public enum GeneratorType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/InsertGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/InsertGenerator.java index 9c6ebf24bc..0dd3ded44b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/InsertGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/InsertGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.generator; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/LogicalGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/LogicalGenerator.java index c575da6577..a1c5234563 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/LogicalGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/LogicalGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.generator; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java index 7f2961bdb7..238df06ae6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.generator; import static cn.edu.tsinghua.iginx.engine.shared.Constants.ALL_PATH_SUFFIX; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/ShowColumnsGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/ShowColumnsGenerator.java index 63065fddf9..0ceeade342 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/ShowColumnsGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/ShowColumnsGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.generator; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/IRuleCollection.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/IRuleCollection.java index 542f50d554..533a78f12f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/IRuleCollection.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/IRuleCollection.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.optimizer; import java.util.Map; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/LogicalOptimizerManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/LogicalOptimizerManager.java index bd23387f6a..7f2fb23e89 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/LogicalOptimizerManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/LogicalOptimizerManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.optimizer; import org.slf4j.Logger; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/Optimizer.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/Optimizer.java index 3b839fbe04..eb04b379ac 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/Optimizer.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/optimizer/Optimizer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.optimizer; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java index 4731649711..bf44e11d68 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.utils; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/MetaUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/MetaUtils.java index 5ab7f30758..d3423f3517 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/MetaUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/MetaUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.utils; import static cn.edu.tsinghua.iginx.metadata.utils.FragmentUtils.keyFromColumnsIntervalToKeyInterval; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java index 2edc0833cd..a09503a0a2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.utils; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils.*; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/PathUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/PathUtils.java index da35bce534..48f7940b2f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/PathUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/PathUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.utils; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngine.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngine.java index ef194b1faf..09f7da78f1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngine.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngine.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngineImpl.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngineImpl.java index d75cab4bcc..e5bf32c043 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngineImpl.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/PhysicalEngineImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/InvalidOperatorParameterException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/InvalidOperatorParameterException.java index cb1b115f25..ff90aff91c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/InvalidOperatorParameterException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/InvalidOperatorParameterException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NonExecutablePhysicalTaskException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NonExecutablePhysicalTaskException.java index fb99082c9e..02a353c762 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NonExecutablePhysicalTaskException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NonExecutablePhysicalTaskException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NonExistedStorageException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NonExistedStorageException.java index b922e9a8dd..1d3648dbf3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NonExistedStorageException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NonExistedStorageException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NotSupportedOperatorException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NotSupportedOperatorException.java index dea19884ff..668090106a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NotSupportedOperatorException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/NotSupportedOperatorException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalException.java index a0bbc0c89b..f82ec19c1d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalRuntimeException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalRuntimeException.java index 4a8b9e5609..43e83ec0a3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalRuntimeException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalRuntimeException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.exception; import cn.edu.tsinghua.iginx.exception.IginxRuntimeException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalTaskExecuteFailureException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalTaskExecuteFailureException.java index 8ac03e33eb..0f05d79f74 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalTaskExecuteFailureException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/PhysicalTaskExecuteFailureException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/RowFetchException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/RowFetchException.java index a75502f33c..520c198e1c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/RowFetchException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/RowFetchException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/StorageInitializationException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/StorageInitializationException.java index fbc30f995e..0ca024c60c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/StorageInitializationException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/StorageInitializationException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/TooManyPhysicalTasksException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/TooManyPhysicalTasksException.java index 353f375ad2..f74400f854 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/TooManyPhysicalTasksException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/TooManyPhysicalTasksException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/UnexpectedOperatorException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/UnexpectedOperatorException.java index f0c22ff9d5..dbb78ba43d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/UnexpectedOperatorException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/UnexpectedOperatorException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/UnimplementedOperatorException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/UnimplementedOperatorException.java index ab7679d29f..a1ce54a513 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/UnimplementedOperatorException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/exception/UnimplementedOperatorException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/MemoryPhysicalTaskDispatcher.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/MemoryPhysicalTaskDispatcher.java index bed478bbb9..c6d99c0c5e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/MemoryPhysicalTaskDispatcher.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/MemoryPhysicalTaskDispatcher.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/OperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/OperatorMemoryExecutor.java index cddce86a1e..93118b7250 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/OperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/OperatorMemoryExecutor.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/OperatorMemoryExecutorFactory.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/OperatorMemoryExecutorFactory.java index d2ba5933f1..3c81a7bca1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/OperatorMemoryExecutorFactory.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/OperatorMemoryExecutorFactory.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/Table.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/Table.java index 7fb977f23b..90f511cf25 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/Table.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/Table.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java index 900ad3ef54..2dd2bc4685 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.naive; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSchemaPrefixLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSchemaPrefixLazyStream.java index 2630aa44cc..a829c62459 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSchemaPrefixLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSchemaPrefixLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSequenceLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSequenceLazyStream.java index 3af4069179..d0e9e38bd8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSequenceLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/AddSequenceLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/BinaryLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/BinaryLazyStream.java index 1e0a7d7d83..15be3b742e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/BinaryLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/BinaryLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/CrossJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/CrossJoinLazyStream.java index a623342a30..8b7f39ba32 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/CrossJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/CrossJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/DistinctLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/DistinctLazyStream.java index f76ad15dec..74b877958a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/DistinctLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/DistinctLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.RowUtils.isEqualRow; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/DownsampleLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/DownsampleLazyStream.java index 4291b20c29..e8164e23fd 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/DownsampleLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/DownsampleLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/EmptyRowStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/EmptyRowStream.java index 7b0808dcee..7350739c91 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/EmptyRowStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/EmptyRowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ExceptLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ExceptLazyStream.java index 00555aff9e..d068f99a36 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ExceptLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ExceptLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.HeaderUtils.checkHeadersComparable; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/GroupByLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/GroupByLazyStream.java index 66701761e5..ed7444e304 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/GroupByLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/GroupByLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashInnerJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashInnerJoinLazyStream.java index a3ead0002e..94c4c3ea60 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashInnerJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashInnerJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.HeaderUtils.calculateHashJoinPath; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashMarkJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashMarkJoinLazyStream.java index 11512a91db..50c0209568 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashMarkJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashMarkJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils.getJoinPathFromFilter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashOuterJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashOuterJoinLazyStream.java index 42a0e6be87..9832a9e80b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashOuterJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashOuterJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.HeaderUtils.calculateHashJoinPath; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashSingleJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashSingleJoinLazyStream.java index fb231b3e66..d605e8b102 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashSingleJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/HashSingleJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/IntersectLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/IntersectLazyStream.java index eb9f60ded1..df561d5503 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/IntersectLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/IntersectLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.HeaderUtils.checkHeadersComparable; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/JoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/JoinLazyStream.java index ad30e3cce9..64da1fb4f3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/JoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/JoinLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/LimitLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/LimitLazyStream.java index e03a7266ce..80861e421a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/LimitLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/LimitLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/MappingTransformLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/MappingTransformLazyStream.java index f3f741b7d9..190ad0470d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/MappingTransformLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/MappingTransformLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopInnerJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopInnerJoinLazyStream.java index 1564924fc2..427ba6bc0a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopInnerJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopInnerJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopMarkJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopMarkJoinLazyStream.java index 868299842d..f2192eb11b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopMarkJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopMarkJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopOuterJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopOuterJoinLazyStream.java index d8d5cfee7c..58fbfed9a6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopOuterJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopOuterJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopSingleJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopSingleJoinLazyStream.java index c29b05175b..428244263a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopSingleJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/NestedLoopSingleJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/PathUnionLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/PathUnionLazyStream.java index c86477d06b..a885f08143 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/PathUnionLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/PathUnionLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ProjectLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ProjectLazyStream.java index a74ecc5a7a..b9771726e0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ProjectLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ProjectLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RenameLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RenameLazyStream.java index 749012b0fa..c83f216a38 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RenameLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RenameLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ReorderLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ReorderLazyStream.java index 6d8d271ac0..59a38af4ca 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ReorderLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ReorderLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RowTransformLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RowTransformLazyStream.java index 8a3efc0e3e..0ea261be86 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RowTransformLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/RowTransformLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SelectLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SelectLazyStream.java index 90eac6eaf7..e66e2df24d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SelectLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SelectLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SetTransformLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SetTransformLazyStream.java index 8834954264..d793e72533 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SetTransformLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SetTransformLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortLazyStream.java index ec02bb7ad3..a80b86f431 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortedMergeInnerJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortedMergeInnerJoinLazyStream.java index 07aaced97c..51aeded0a9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortedMergeInnerJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortedMergeInnerJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.InvalidOperatorParameterException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortedMergeOuterJoinLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortedMergeOuterJoinLazyStream.java index 78b1062617..4dcb4e5d9c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortedMergeOuterJoinLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/SortedMergeOuterJoinLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import cn.edu.tsinghua.iginx.engine.physical.exception.InvalidOperatorParameterException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java index 6ef5c54896..56083f3d76 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnaryLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnaryLazyStream.java index 2e53bc117f..5ca456cc58 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnaryLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnaryLazyStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnionAllLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnionAllLazyStream.java index 161cce5fe5..ef2eb87466 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnionAllLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnionAllLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.HeaderUtils.checkHeadersComparable; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnionDistinctLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnionDistinctLazyStream.java index 0158cf7bac..f8f03e934a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnionDistinctLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/UnionDistinctLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.HeaderUtils.checkHeadersComparable; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ValueToSelectedPathLazyStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ValueToSelectedPathLazyStream.java index 4d7d97218b..db3cef2c19 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ValueToSelectedPathLazyStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/ValueToSelectedPathLazyStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; import static cn.edu.tsinghua.iginx.sql.SQLConstant.DOT; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java index ee2197e022..ca36ad1357 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils; import cn.edu.tsinghua.iginx.engine.physical.exception.InvalidOperatorParameterException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java index 541a8893c2..b0f619dd6d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/GroupByKey.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/GroupByKey.java index cc01bbcae2..541d025324 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/GroupByKey.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/GroupByKey.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils; import java.util.ArrayList; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java index b569ac7758..2f314d9047 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils; import static cn.edu.tsinghua.iginx.engine.shared.function.system.utils.ValueUtils.isNumericType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java index 4a3419ae85..c03e601623 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/queue/MemoryPhysicalTaskQueue.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/queue/MemoryPhysicalTaskQueue.java index 27d824ada3..275daf8304 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/queue/MemoryPhysicalTaskQueue.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/queue/MemoryPhysicalTaskQueue.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.queue; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/queue/MemoryPhysicalTaskQueueImpl.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/queue/MemoryPhysicalTaskQueueImpl.java index 65005348d3..a126dfb016 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/queue/MemoryPhysicalTaskQueueImpl.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/queue/MemoryPhysicalTaskQueueImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.queue; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/PhysicalOptimizer.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/PhysicalOptimizer.java index 8ceffa6d32..a78c28316d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/PhysicalOptimizer.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/PhysicalOptimizer.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.optimizer; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/PhysicalOptimizerManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/PhysicalOptimizerManager.java index e335959ec0..3d9c4ceb13 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/PhysicalOptimizerManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/PhysicalOptimizerManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.optimizer; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/ReplicaDispatcher.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/ReplicaDispatcher.java index a691323dd6..7251826531 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/ReplicaDispatcher.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/optimizer/ReplicaDispatcher.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.optimizer; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/IStorage.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/IStorage.java index ab0fc986b2..84a62a7c3e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/IStorage.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/IStorage.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.storage; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageEngineClassLoader.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageEngineClassLoader.java index efd5e3e997..48c5a864a1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageEngineClassLoader.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageEngineClassLoader.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.storage; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageManager.java index 5f4a039d9c..0220568339 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/StorageManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.storage; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/Column.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/Column.java index accf53af7d..a9b11a7343 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/Column.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/Column.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.storage.domain; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/ColumnKey.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/ColumnKey.java index 68a4338a59..c157c0691c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/ColumnKey.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/ColumnKey.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.storage.domain; import cn.edu.tsinghua.iginx.engine.shared.Constants; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/DataArea.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/DataArea.java index 9ba8de6f2e..32aebeb018 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/DataArea.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/domain/DataArea.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.storage.domain; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/execute/StoragePhysicalTaskExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/execute/StoragePhysicalTaskExecutor.java index d571073b02..e64c1de7d4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/execute/StoragePhysicalTaskExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/execute/StoragePhysicalTaskExecutor.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.storage.execute; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/queue/StoragePhysicalTaskQueue.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/queue/StoragePhysicalTaskQueue.java index cb5fa5fb3c..d5eed3e5a4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/queue/StoragePhysicalTaskQueue.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/queue/StoragePhysicalTaskQueue.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.storage.queue; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/ColumnKeyTranslator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/ColumnKeyTranslator.java index 2e6f7fa972..2c0f3a837a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/ColumnKeyTranslator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/ColumnKeyTranslator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.storage.utils; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/TagKVUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/TagKVUtils.java index 2acb04a057..712810e614 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/TagKVUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/TagKVUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.storage.utils; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.*; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/AbstractPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/AbstractPhysicalTask.java index 32727aa5ff..5e867820bb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/AbstractPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/AbstractPhysicalTask.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.task; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/BinaryMemoryPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/BinaryMemoryPhysicalTask.java index 1152970171..359100873e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/BinaryMemoryPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/BinaryMemoryPhysicalTask.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.task; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/CompletedFoldedPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/CompletedFoldedPhysicalTask.java index 8f24ad52de..446b3b94ab 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/CompletedFoldedPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/CompletedFoldedPhysicalTask.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.task; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/FoldedMemoryPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/FoldedMemoryPhysicalTask.java index 434633184c..fb0fecebb5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/FoldedMemoryPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/FoldedMemoryPhysicalTask.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.task; import static cn.edu.tsinghua.iginx.engine.logical.utils.MetaUtils.getFragmentsByColumnsInterval; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/GlobalPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/GlobalPhysicalTask.java index 409628d41a..ba6dfc6cc3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/GlobalPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/GlobalPhysicalTask.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.task; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/Measurable.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/Measurable.java index e173fead78..f3efb6d445 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/Measurable.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/Measurable.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.task; public interface Measurable { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/MemoryPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/MemoryPhysicalTask.java index 2bcb274cd6..5d92b87096 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/MemoryPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/MemoryPhysicalTask.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.task; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/MultipleMemoryPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/MultipleMemoryPhysicalTask.java index 92c7f67f7b..8946d26375 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/MultipleMemoryPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/MultipleMemoryPhysicalTask.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.task; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/PhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/PhysicalTask.java index 2e5a3177cc..7834553ff4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/PhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/PhysicalTask.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.task; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/StoragePhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/StoragePhysicalTask.java index dd5abc05bb..985506747d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/StoragePhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/StoragePhysicalTask.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.task; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/TaskExecuteResult.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/TaskExecuteResult.java index fc5f87742a..681a6c72f2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/TaskExecuteResult.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/TaskExecuteResult.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.task; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/TaskType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/TaskType.java index 944d27350d..f3541f9b09 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/TaskType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/TaskType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.task; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/UnaryMemoryPhysicalTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/UnaryMemoryPhysicalTask.java index 20666efe9c..2797741b75 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/UnaryMemoryPhysicalTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/UnaryMemoryPhysicalTask.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.task; import cn.edu.tsinghua.iginx.engine.logical.utils.OperatorUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/utils/TaskUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/utils/TaskUtils.java index ebdfe58fe5..a0e5006452 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/utils/TaskUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/utils/TaskUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.task.utils; import cn.edu.tsinghua.iginx.engine.physical.task.BinaryMemoryPhysicalTask; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/visitor/TaskInfoVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/visitor/TaskInfoVisitor.java index 020150cfd2..eb627c2987 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/visitor/TaskInfoVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/visitor/TaskInfoVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.task.visitor; import cn.edu.tsinghua.iginx.engine.physical.task.BinaryMemoryPhysicalTask; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/visitor/TaskVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/visitor/TaskVisitor.java index b82c3d2205..0e10e69e2a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/visitor/TaskVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/task/visitor/TaskVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.task.visitor; import cn.edu.tsinghua.iginx.engine.physical.task.BinaryMemoryPhysicalTask; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/Constants.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/Constants.java index 20fe07f2c8..2fb4af6024 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/Constants.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/Constants.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/KeyRange.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/KeyRange.java index 83656eccac..c3123a8c87 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/KeyRange.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/KeyRange.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/RequestContext.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/RequestContext.java index c9bb244ae9..7e0d152cc2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/RequestContext.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/RequestContext.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared; import cn.edu.tsinghua.iginx.engine.physical.task.PhysicalTask; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/Result.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/Result.java index fb92e57a7d..834b79beba 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/Result.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/Result.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/constraint/ConstraintManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/constraint/ConstraintManager.java index f61d34cbc2..a1a8f3a4f6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/constraint/ConstraintManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/constraint/ConstraintManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.constraint; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/ExecuteDetail.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/ExecuteDetail.java index 98223b3a64..5649b0025a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/ExecuteDetail.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/ExecuteDetail.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.data; import java.util.List; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/Value.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/Value.java index 3cffd7cf4b..16e22f61e2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/Value.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/Value.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/ClearEmptyRowStreamWrapper.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/ClearEmptyRowStreamWrapper.java index d6106c0003..4aa226c0bd 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/ClearEmptyRowStreamWrapper.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/ClearEmptyRowStreamWrapper.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.read; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Field.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Field.java index 4ebfc7a12c..310516f869 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Field.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Field.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.read; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/FilterRowStreamWrapper.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/FilterRowStreamWrapper.java index 4e51e0f271..5324befac2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/FilterRowStreamWrapper.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/FilterRowStreamWrapper.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.data.read; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java index 3945a58d24..a427238faa 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.read; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/MergeFieldRowStreamWrapper.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/MergeFieldRowStreamWrapper.java index 4a207c4858..8464e26b7d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/MergeFieldRowStreamWrapper.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/MergeFieldRowStreamWrapper.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.data.read; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/MergeTimeRowStreamWrapper.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/MergeTimeRowStreamWrapper.java index ddd592d982..57725499f7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/MergeTimeRowStreamWrapper.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/MergeTimeRowStreamWrapper.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.data.read; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Row.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Row.java index d1e5a5fc29..3cd3d9f1d4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Row.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Row.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.read; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/RowStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/RowStream.java index 64a932bf6d..f664253dec 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/RowStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/RowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.read; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/RowStreamWrapper.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/RowStreamWrapper.java index c1b088924b..7b2311bbc7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/RowStreamWrapper.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/RowStreamWrapper.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.read; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/BitmapView.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/BitmapView.java index 9c43e422eb..b3f3d4e77a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/BitmapView.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/BitmapView.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.write; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/ColumnDataView.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/ColumnDataView.java index 14cc789164..0567c05969 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/ColumnDataView.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/ColumnDataView.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.write; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/DataView.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/DataView.java index e3b5f2644f..a1264cfcb2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/DataView.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/DataView.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.write; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RawData.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RawData.java index f3926b80cf..15372c52ba 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RawData.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RawData.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.data.write; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RawDataType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RawDataType.java index 7b74e1063b..f859a0ab6e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RawDataType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RawDataType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.data.write; public enum RawDataType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RowDataView.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RowDataView.java index b0acb1d81f..99a1212143 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RowDataView.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/write/RowDataView.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.data.write; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/exception/StatementExecutionException.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/exception/StatementExecutionException.java index 48c8392adc..3a62423c07 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/exception/StatementExecutionException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/exception/StatementExecutionException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BaseExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BaseExpression.java index 852af9629d..a33efa03e5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BaseExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BaseExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; public class BaseExpression implements Expression { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BinaryExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BinaryExpression.java index 6a6d8009b0..492e49f16f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BinaryExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BinaryExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; public class BinaryExpression implements Expression { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BracketExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BracketExpression.java index 9695abea76..3f92719c19 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BracketExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BracketExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; public class BracketExpression implements Expression { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/CaseWhenExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/CaseWhenExpression.java index 9a2eb0ba41..297ac6ac8c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/CaseWhenExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/CaseWhenExpression.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.expr; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java index 86015e072a..9e3068760d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; public class ConstantExpression implements Expression { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java index 1569edf8ab..27e58fdddf 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; public interface Expression { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ExpressionVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ExpressionVisitor.java index 988f26ed13..2c4437632f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ExpressionVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ExpressionVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; public interface ExpressionVisitor { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FromValueExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FromValueExpression.java index 9134b21561..25ecebc14c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FromValueExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FromValueExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; import cn.edu.tsinghua.iginx.sql.statement.select.SelectStatement; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java index 88e364bcf1..d3bdb61b3c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java index 474fd4f801..d18769b5a0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.expr; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/MultipleExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/MultipleExpression.java index 8f73f354f4..23e39acb4c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/MultipleExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/MultipleExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; import java.util.List; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Operator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Operator.java index 3ea2def34c..5a296cc826 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Operator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Operator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; public enum Operator { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java index 50fa39e62d..9cba100336 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.expr; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/UnaryExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/UnaryExpression.java index de051e6478..bb42c69bec 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/UnaryExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/UnaryExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.expr; public class UnaryExpression implements Expression { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/CSVFile.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/CSVFile.java index 0881537a9c..d42330ea86 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/CSVFile.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/CSVFile.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.file; import cn.edu.tsinghua.iginx.utils.CSVUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/FileType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/FileType.java index d014c40e15..d1fc70d830 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/FileType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/FileType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.file; public enum FileType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/read/ImportCsv.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/read/ImportCsv.java index 1f540dfb69..2597f06f72 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/read/ImportCsv.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/read/ImportCsv.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.file.read; import cn.edu.tsinghua.iginx.engine.shared.file.CSVFile; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/read/ImportFile.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/read/ImportFile.java index b4544890ec..30cf3bea10 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/read/ImportFile.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/read/ImportFile.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.file.read; import cn.edu.tsinghua.iginx.engine.shared.file.FileType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportByteStream.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportByteStream.java index 86942a68dc..38f5e6f34e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportByteStream.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportByteStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.file.write; import cn.edu.tsinghua.iginx.engine.shared.file.FileType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportCsv.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportCsv.java index 253d7a16c6..ccc8da098f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportCsv.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportCsv.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.file.write; import cn.edu.tsinghua.iginx.engine.shared.file.CSVFile; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportFile.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportFile.java index 791ce16b73..cc94abd1c5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportFile.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/file/write/ExportFile.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.file.write; import cn.edu.tsinghua.iginx.engine.shared.file.FileType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/Function.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/Function.java index 3fa9d887dd..a1060670f2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/Function.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/Function.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionCall.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionCall.java index 99a89bbf77..47febc6a7e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionCall.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionCall.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java index 510db84e39..3e1e88ec6b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionType.java index c03ef8f525..990ce005f9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java index 94b009b1ee..d26b9c3ae0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function; import static cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr.ARITHMETIC_EXPR; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/MappingFunction.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/MappingFunction.java index 1ccece57d4..447bb590b1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/MappingFunction.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/MappingFunction.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/MappingType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/MappingType.java index a449452030..9639021be7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/MappingType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/MappingType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/RowMappingFunction.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/RowMappingFunction.java index de2b2eadf1..f7c416ae0e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/RowMappingFunction.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/RowMappingFunction.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/SetMappingFunction.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/SetMappingFunction.java index 3aded20a5e..30fe6bedbe 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/SetMappingFunction.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/SetMappingFunction.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java index ba46f65355..2f27b121f4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.manager; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/ArithmeticExpr.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/ArithmeticExpr.java index f830eef78f..2ec0005d92 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/ArithmeticExpr.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/ArithmeticExpr.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.system; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Avg.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Avg.java index acba2fe4b4..f794888c02 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Avg.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Avg.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Count.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Count.java index 5cb698ad9d..9df7990139 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Count.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Count.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/First.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/First.java index 1a3d32611c..b573152d82 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/First.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/First.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/FirstValue.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/FirstValue.java index 690b43d8d2..9bc3524337 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/FirstValue.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/FirstValue.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Last.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Last.java index 672cc68ead..fe30a80686 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Last.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Last.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/LastValue.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/LastValue.java index d57c79560b..8e5f6c0aff 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/LastValue.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/LastValue.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Max.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Max.java index dafe2ceaad..12739fb9c8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Max.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Max.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Min.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Min.java index bd234e950d..f4c333a8df 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Min.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Min.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Ratio.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Ratio.java index 43e6967679..eed3a8e875 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Ratio.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Ratio.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.system; import cn.edu.tsinghua.iginx.engine.shared.data.Value; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Sum.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Sum.java index 71986e0710..a248f52003 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Sum.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Sum.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/GroupByUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/GroupByUtils.java index 1770ef61b5..a4de316e1f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/GroupByUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/GroupByUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system.utils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java index 72a156eac0..a87d6c0f50 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system.utils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDAF.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDAF.java index 12a5b24e0d..ff35f8fa82 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDAF.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDAF.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf; import cn.edu.tsinghua.iginx.engine.shared.function.SetMappingFunction; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDSF.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDSF.java index cc278938ce..da518a25e0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDSF.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDSF.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf; import cn.edu.tsinghua.iginx.engine.shared.function.MappingFunction; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDTF.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDTF.java index 2ddc562991..d246118c84 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDTF.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/UDTF.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf; import cn.edu.tsinghua.iginx.engine.shared.function.RowMappingFunction; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDAF.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDAF.java index 51f62bcd8b..461fff7a39 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDAF.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDAF.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf.python; import static cn.edu.tsinghua.iginx.engine.shared.Constants.UDF_CLASS; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDF.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDF.java index df4e522af4..ef5afa2b06 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDF.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDF.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.udf.python; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDSF.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDSF.java index 17c730b053..52f077f175 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDSF.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDSF.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf.python; import static cn.edu.tsinghua.iginx.engine.shared.Constants.UDF_CLASS; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDTF.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDTF.java index ee0c3c938d..c709d8f7f7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDTF.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/python/PyUDTF.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf.python; import static cn.edu.tsinghua.iginx.engine.shared.Constants.UDF_CLASS; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/CheckUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/CheckUtils.java index 701f27e855..86ddb71bfe 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/CheckUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/CheckUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf.utils; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/DataUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/DataUtils.java index ad244952d0..f26cf3dbfc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/DataUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/DataUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf.utils; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/RowUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/RowUtils.java index 59daec650c..c6dbf418eb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/RowUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/udf/utils/RowUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.function.udf.utils; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractBinaryOperator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractBinaryOperator.java index b77a725fdb..ff20764dc8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractBinaryOperator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractBinaryOperator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractJoin.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractJoin.java index ce481dfc9e..fe2157f88c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractJoin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractJoin.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractMultipleOperator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractMultipleOperator.java index d63774cb8e..64fa1ba45e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractMultipleOperator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractMultipleOperator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractOperator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractOperator.java index 9c06b2b21a..ec854b498c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractOperator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractOperator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractUnaryOperator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractUnaryOperator.java index 18d9713876..a253d1985a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractUnaryOperator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AbstractUnaryOperator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSchemaPrefix.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSchemaPrefix.java index c33ca326c9..173a544079 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSchemaPrefix.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSchemaPrefix.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSequence.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSequence.java index 1f2e915757..4537aec8f7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSequence.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/AddSequence.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/BinaryOperator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/BinaryOperator.java index ee2adfa05b..22c1c423ba 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/BinaryOperator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/BinaryOperator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/CombineNonQuery.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/CombineNonQuery.java index b69d4f69ca..3c9e0b69d7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/CombineNonQuery.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/CombineNonQuery.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/CrossJoin.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/CrossJoin.java index 4a272a6371..8caa7d25b1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/CrossJoin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/CrossJoin.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Delete.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Delete.java index 448131187d..69c1b9bce5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Delete.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Delete.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.KeyRange; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Distinct.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Distinct.java index 311062969f..dab5bd7af2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Distinct.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Distinct.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Downsample.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Downsample.java index 03414af68d..4de33c5078 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Downsample.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Downsample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Except.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Except.java index 0eb29b76f2..7bd406f333 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Except.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Except.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/FoldedOperator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/FoldedOperator.java index b39e832ab7..b569b6cc34 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/FoldedOperator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/FoldedOperator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/GroupBy.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/GroupBy.java index 1af269b5f9..d4608b9d59 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/GroupBy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/GroupBy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/InnerJoin.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/InnerJoin.java index bd419b3abf..c204bb1119 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/InnerJoin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/InnerJoin.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import static cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType.chooseJoinAlg; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Insert.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Insert.java index dcdf292868..b3e1854868 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Insert.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Insert.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.data.write.DataView; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Intersect.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Intersect.java index 1914114709..32412b4e75 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Intersect.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Intersect.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Join.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Join.java index 11752b836a..97461301d6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Join.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Join.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Limit.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Limit.java index 473cb42e78..25f75b75f6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Limit.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Limit.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MappingTransform.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MappingTransform.java index d40e0bc8c2..4edc5007a9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MappingTransform.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MappingTransform.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MarkJoin.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MarkJoin.java index e2322644a9..71f0779213 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MarkJoin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MarkJoin.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import static cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType.chooseJoinAlg; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Migration.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Migration.java index ace8c354e4..92291adb79 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Migration.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Migration.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MultipleOperator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MultipleOperator.java index 6d658406d9..876a16eddd 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MultipleOperator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/MultipleOperator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.source.Source; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Operator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Operator.java index 147bd4fb95..951f2f72c3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Operator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Operator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/OuterJoin.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/OuterJoin.java index 2a2ea3f3b7..540f06f106 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/OuterJoin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/OuterJoin.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/PathUnion.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/PathUnion.java index 56434a6bf4..62984b8b9a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/PathUnion.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/PathUnion.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Project.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Project.java index 8282eb5a75..7fe436cc43 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Project.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Project.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ProjectWaitingForPath.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ProjectWaitingForPath.java index 346d0120e8..1909ddcf1c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ProjectWaitingForPath.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ProjectWaitingForPath.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Rename.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Rename.java index 5a26576916..9207404e9b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Rename.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Rename.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Reorder.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Reorder.java index c451366e9d..5ad550ddc2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Reorder.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Reorder.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/RowTransform.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/RowTransform.java index 4705c83437..8fda1173ca 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/RowTransform.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/RowTransform.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Select.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Select.java index 531db819e4..5cdfdbb613 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Select.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Select.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SetTransform.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SetTransform.java index 6ce840916d..5d7c502d21 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SetTransform.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SetTransform.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ShowColumns.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ShowColumns.java index a807d635ab..9d4d2c70e6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ShowColumns.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ShowColumns.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SingleJoin.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SingleJoin.java index 773c7fd09f..45d911561c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SingleJoin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/SingleJoin.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import static cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType.chooseJoinAlg; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Sort.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Sort.java index 84cd04ed76..3ec855bfe0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Sort.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Sort.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/UnaryOperator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/UnaryOperator.java index 8ffbe5a80a..7f68609819 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/UnaryOperator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/UnaryOperator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Union.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Union.java index c5d4d55ea4..66e975c8c0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Union.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Union.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ValueToSelectedPath.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ValueToSelectedPath.java index 6775bf3b7d..b9e72e2199 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ValueToSelectedPath.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/ValueToSelectedPath.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/AndFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/AndFilter.java index 51e79a08f7..e7fca7e4c1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/AndFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/AndFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/BoolFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/BoolFilter.java index 3d103aa79d..1a254fe885 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/BoolFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/BoolFilter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.filter; import java.util.Objects; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ExprFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ExprFilter.java index f479d87704..5373acd746 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ExprFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ExprFilter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.filter; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Filter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Filter.java index 69fb910cf6..5cd48a9fa3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Filter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Filter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterType.java index fa6c8601c7..def2622cb8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterVisitor.java index 75b7fe8ebf..3dd71fd194 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.filter; public interface FilterVisitor { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/KeyFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/KeyFilter.java index ff8298f0a2..8a78171f46 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/KeyFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/KeyFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/NotFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/NotFilter.java index 31902831ce..f03599d56b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/NotFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/NotFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Op.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Op.java index f65d62b060..6a58160809 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Op.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Op.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/OrFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/OrFilter.java index f8e63ffa50..421fc84e28 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/OrFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/OrFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/PathFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/PathFilter.java index ef689230f2..4d4c1b64f9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/PathFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/PathFilter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.filter; import java.util.Objects; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ValueFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ValueFilter.java index 8c38e3f7d3..fec1996855 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ValueFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ValueFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/AndTagFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/AndTagFilter.java index 9eb747e559..7943cc4f25 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/AndTagFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/AndTagFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.tag; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/BasePreciseTagFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/BasePreciseTagFilter.java index 04b909b2b3..641edc9b31 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/BasePreciseTagFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/BasePreciseTagFilter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.tag; import java.util.Map; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/BaseTagFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/BaseTagFilter.java index 1713a5d062..44220822f3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/BaseTagFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/BaseTagFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.tag; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/OrTagFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/OrTagFilter.java index 2a9598aec9..40bd584842 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/OrTagFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/OrTagFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.tag; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/PreciseTagFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/PreciseTagFilter.java index d9960c856a..0abdb5da0f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/PreciseTagFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/PreciseTagFilter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.tag; import java.util.ArrayList; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/TagFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/TagFilter.java index 7cb3792876..e2c83ad1a4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/TagFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/TagFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.tag; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/TagFilterType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/TagFilterType.java index 5db040c8f7..54c970e470 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/TagFilterType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/TagFilterType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.tag; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/WithoutTagFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/WithoutTagFilter.java index 9b805bc65d..6466d0e011 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/WithoutTagFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/tag/WithoutTagFilter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.tag; public class WithoutTagFilter implements TagFilter { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/FuncType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/FuncType.java index be10c40e13..9be37af697 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/FuncType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/FuncType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.type; import java.util.Set; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/JoinAlgType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/JoinAlgType.java index dea2bc5bf5..50349e33ba 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/JoinAlgType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/JoinAlgType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.type; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java index 990c88de32..0d430d8045 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.operator.type; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OuterJoinType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OuterJoinType.java index f650c269c9..7e1cf6e28c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OuterJoinType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OuterJoinType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.type; public enum OuterJoinType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/DeepFirstQueueVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/DeepFirstQueueVisitor.java index 191e510e08..6fd6c6d15e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/DeepFirstQueueVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/DeepFirstQueueVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.visitor; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/IndexVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/IndexVisitor.java index 93099a1c06..157f223b35 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/IndexVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/IndexVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.visitor; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/OperatorInfoVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/OperatorInfoVisitor.java index a76658f8e5..8839884b3a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/OperatorInfoVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/OperatorInfoVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.visitor; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/OperatorVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/OperatorVisitor.java index e636650099..e2a84c4b20 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/OperatorVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/OperatorVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.visitor; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/TreeInfoVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/TreeInfoVisitor.java index 1f5b0cdee4..fad0caa3e1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/TreeInfoVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/visitor/TreeInfoVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.operator.visitor; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostExecuteProcessor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostExecuteProcessor.java index c7ab490688..fa59668d58 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostExecuteProcessor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostExecuteProcessor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; public interface PostExecuteProcessor extends Processor {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostLogicalProcessor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostLogicalProcessor.java index 2172f0eed6..e41f6a5665 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostLogicalProcessor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostLogicalProcessor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; public interface PostLogicalProcessor extends Processor {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostParseProcessor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostParseProcessor.java index 425d53ae81..38e582c187 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostParseProcessor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostParseProcessor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; public interface PostParseProcessor extends Processor {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostPhysicalProcessor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostPhysicalProcessor.java index 9d03887836..b6fe6ca23a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostPhysicalProcessor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PostPhysicalProcessor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; public interface PostPhysicalProcessor extends Processor {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreExecuteProcessor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreExecuteProcessor.java index 6153755987..74724b37f0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreExecuteProcessor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreExecuteProcessor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; public interface PreExecuteProcessor extends Processor {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreLogicalProcessor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreLogicalProcessor.java index f61afdb718..39b58ea835 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreLogicalProcessor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreLogicalProcessor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; public interface PreLogicalProcessor extends Processor {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreParseProcessor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreParseProcessor.java index 60040b7fc1..0aa823ad3d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreParseProcessor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PreParseProcessor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; public interface PreParseProcessor extends Processor {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PrePhysicalProcessor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PrePhysicalProcessor.java index 9f3f808db4..952a2a3123 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PrePhysicalProcessor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/PrePhysicalProcessor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; public interface PrePhysicalProcessor extends Processor {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/Processor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/Processor.java index d40491a30c..11fcaecad7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/Processor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/processor/Processor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.processor; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/AbstractSource.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/AbstractSource.java index d4d024ef5c..2c6a08cba3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/AbstractSource.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/AbstractSource.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.source; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/ConstantSource.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/ConstantSource.java index 716bdeea80..33ce1de311 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/ConstantSource.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/ConstantSource.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.source; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/EmptySource.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/EmptySource.java index 9ebd45e18c..7aa41958b7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/EmptySource.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/EmptySource.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.source; public class EmptySource implements Source { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/FragmentSource.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/FragmentSource.java index b488e20b7e..d143b81e3e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/FragmentSource.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/FragmentSource.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.source; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/GlobalSource.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/GlobalSource.java index 8032b613d3..8f9cf1e85d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/GlobalSource.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/GlobalSource.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.shared.source; public class GlobalSource extends AbstractSource { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/OperatorSource.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/OperatorSource.java index 6dc74a16d0..1f645f7917 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/OperatorSource.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/OperatorSource.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.source; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/Source.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/Source.java index 163ec34339..cf4285f7df 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/Source.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/Source.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.source; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/SourceType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/SourceType.java index 7849b7fe46..49bf6939b6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/SourceType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/source/SourceType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.source; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/exception/IginxException.java b/core/src/main/java/cn/edu/tsinghua/iginx/exception/IginxException.java index cc37c09724..affd0ee014 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/exception/IginxException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/exception/IginxException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/DefaultMetaManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/DefaultMetaManager.java index 59e95b1234..bc765efab4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/DefaultMetaManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/DefaultMetaManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/IMetaManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/IMetaManager.java index 8a9c1a3f52..c11740e7e9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/IMetaManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/IMetaManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/MetaManagerMock.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/MetaManagerMock.java index 3438c7a002..191f865970 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/MetaManagerMock.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/MetaManagerMock.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata; import cn.edu.tsinghua.iginx.metadata.entity.*; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/MetaManagerWrapper.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/MetaManagerWrapper.java index 69fd0bc6b6..234d68aab2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/MetaManagerWrapper.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/MetaManagerWrapper.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/cache/DefaultMetaCache.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/cache/DefaultMetaCache.java index 4dd3513e9c..bbda6d3b20 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/cache/DefaultMetaCache.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/cache/DefaultMetaCache.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.cache; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/cache/IMetaCache.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/cache/IMetaCache.java index 083b022140..ad9d372ce1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/cache/IMetaCache.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/cache/IMetaCache.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.cache; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/ColumnsInterval.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/ColumnsInterval.java index 36d9b1c10e..a8f9295692 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/ColumnsInterval.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/ColumnsInterval.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.entity; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/FragmentMeta.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/FragmentMeta.java index bdb8205510..2a0c4ddd72 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/FragmentMeta.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/FragmentMeta.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* * IGinX - the polystore system with high performance diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/IginxMeta.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/IginxMeta.java index 6e5011d62f..c9ffc86b3b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/IginxMeta.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/IginxMeta.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.entity; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/KeyInterval.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/KeyInterval.java index ed54d672cd..a2118d3c1c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/KeyInterval.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/KeyInterval.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.entity; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageEngineMeta.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageEngineMeta.java index dc38c7bd89..5d1d85e8a0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageEngineMeta.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageEngineMeta.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.entity; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageUnitMeta.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageUnitMeta.java index 8f5bb698f0..3e994205f3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageUnitMeta.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/StorageUnitMeta.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.entity; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/TransformTaskMeta.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/TransformTaskMeta.java index 24055fea9f..86784c3e23 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/TransformTaskMeta.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/TransformTaskMeta.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.entity; import cn.edu.tsinghua.iginx.thrift.UDFType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/UserMeta.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/UserMeta.java index cab0a919f1..31e9038090 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/UserMeta.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/UserMeta.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.entity; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/exception/MetaStorageException.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/exception/MetaStorageException.java index c6dc8e64ec..e05cc0906e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/exception/MetaStorageException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/exception/MetaStorageException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.exception; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/EnableMonitorChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/EnableMonitorChangeHook.java index 95f2e37072..2b038e9827 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/EnableMonitorChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/EnableMonitorChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/FragmentChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/FragmentChangeHook.java index 70def91f30..535b5559ad 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/FragmentChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/FragmentChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/IginxChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/IginxChangeHook.java index fcddf7ef26..2d7a53c79e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/IginxChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/IginxChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/MaxActiveEndKeyStatisticsChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/MaxActiveEndKeyStatisticsChangeHook.java index 8c67c8d340..756da50a71 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/MaxActiveEndKeyStatisticsChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/MaxActiveEndKeyStatisticsChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/ReshardCounterChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/ReshardCounterChangeHook.java index 99cb403b19..b5cafb5243 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/ReshardCounterChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/ReshardCounterChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/ReshardStatusChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/ReshardStatusChangeHook.java index c3c2e2a63c..bfe8f2bb35 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/ReshardStatusChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/ReshardStatusChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/SchemaMappingChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/SchemaMappingChangeHook.java index 109cc878ee..bf91afc98f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/SchemaMappingChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/SchemaMappingChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageChangeHook.java index f17ac27db6..97854eff77 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageEngineChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageEngineChangeHook.java index 0466112d07..f137a2a1b5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageEngineChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageEngineChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageUnitChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageUnitChangeHook.java index 2469958a0e..63bcf152c2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageUnitChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageUnitChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageUnitHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageUnitHook.java index 9ae348fc13..e42e814f8e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageUnitHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/StorageUnitHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/TimeSeriesChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/TimeSeriesChangeHook.java index 63e7b9acdc..32d325c264 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/TimeSeriesChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/TimeSeriesChangeHook.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.hook; public interface TimeSeriesChangeHook { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/TransformChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/TransformChangeHook.java index 61e8cc8f95..d35b17a5af 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/TransformChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/TransformChangeHook.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.hook; import cn.edu.tsinghua.iginx.metadata.entity.TransformTaskMeta; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/UserChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/UserChangeHook.java index 9cf1a0639d..6652442708 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/UserChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/UserChangeHook.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.hook; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/VersionChangeHook.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/VersionChangeHook.java index 8a83308ad8..46bc2eb5e9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/VersionChangeHook.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/hook/VersionChangeHook.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.hook; public interface VersionChangeHook { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/IMetaStorage.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/IMetaStorage.java index 728ebfcd37..571c4df5fe 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/IMetaStorage.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/IMetaStorage.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.storage; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/constant/Constant.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/constant/Constant.java index d186bb97e6..e18a64a42c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/constant/Constant.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/constant/Constant.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.storage.constant; public class Constant { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/etcd/ETCDMetaStorage.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/etcd/ETCDMetaStorage.java index c60eb0457a..1300f7593b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/etcd/ETCDMetaStorage.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/etcd/ETCDMetaStorage.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.storage.etcd; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/zk/ZooKeeperMetaStorage.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/zk/ZooKeeperMetaStorage.java index aae1bc1ae2..ab2a59a460 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/zk/ZooKeeperMetaStorage.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/storage/zk/ZooKeeperMetaStorage.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.storage.zk; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/ProposalListener.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/ProposalListener.java index de9d81e940..8549423893 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/ProposalListener.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/ProposalListener.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.proposal; public interface ProposalListener { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/SyncProposal.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/SyncProposal.java index 7dfdedd80d..1f61bb844c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/SyncProposal.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/SyncProposal.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.proposal; public class SyncProposal { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/SyncVote.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/SyncVote.java index b421e341cd..0da4f5637f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/SyncVote.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/SyncVote.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.proposal; public class SyncVote { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/VoteListener.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/VoteListener.java index cbff39a55b..a63f17b508 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/VoteListener.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/proposal/VoteListener.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.proposal; public interface VoteListener { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/ExecutionException.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/ExecutionException.java index a240c327f8..368d465c61 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/ExecutionException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/ExecutionException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.protocol; public class ExecutionException extends Exception { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/NetworkException.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/NetworkException.java index 8cacb3c714..73d4e178ed 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/NetworkException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/NetworkException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.protocol; public class NetworkException extends Exception { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/SyncProtocol.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/SyncProtocol.java index 3790256d27..fd962e253a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/SyncProtocol.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/SyncProtocol.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.protocol; import cn.edu.tsinghua.iginx.metadata.sync.proposal.ProposalListener; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/VoteExpiredException.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/VoteExpiredException.java index a78e0f4713..2c5661738c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/VoteExpiredException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/VoteExpiredException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.protocol; public class VoteExpiredException extends Exception { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/etcd/ETCDSyncProtocolImpl.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/etcd/ETCDSyncProtocolImpl.java index fc56388cd7..826c06d123 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/etcd/ETCDSyncProtocolImpl.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/etcd/ETCDSyncProtocolImpl.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.protocol.etcd; import cn.edu.tsinghua.iginx.metadata.sync.proposal.ProposalListener; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/zk/ZooKeeperSyncProtocolImpl.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/zk/ZooKeeperSyncProtocolImpl.java index 284e58ab9d..93b06bedae 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/zk/ZooKeeperSyncProtocolImpl.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/sync/protocol/zk/ZooKeeperSyncProtocolImpl.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.sync.protocol.zk; import cn.edu.tsinghua.iginx.metadata.sync.proposal.ProposalListener; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/ColumnsIntervalUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/ColumnsIntervalUtils.java index db887f1471..944d2bec99 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/ColumnsIntervalUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/ColumnsIntervalUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.utils; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/FragmentUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/FragmentUtils.java index b508fa78c0..2c5230841a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/FragmentUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/FragmentUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.utils; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/IdUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/IdUtils.java index b28feef207..28b97d063f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/IdUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/IdUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.utils; import static cn.edu.tsinghua.iginx.conf.Constants.LENGTH_OF_SEQUENCE_NUMBER; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/ReshardStatus.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/ReshardStatus.java index cd78980b3c..e7ecbfcb0c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/ReshardStatus.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/ReshardStatus.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.metadata.utils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/StorageEngineUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/StorageEngineUtils.java index e513f5fbf5..e605ebf082 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/StorageEngineUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/utils/StorageEngineUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.utils; import static cn.edu.tsinghua.iginx.conf.Constants.*; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/GreedyMigrationPolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/GreedyMigrationPolicy.java index 1135e4e028..2ad3e41e32 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/GreedyMigrationPolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/GreedyMigrationPolicy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration; import cn.edu.tsinghua.iginx.metadata.entity.FragmentMeta; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationManager.java index 2e401a8f2f..acbf926607 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationPhysicalExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationPhysicalExecutor.java index 0ef8412bcc..10a7ed73a8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationPhysicalExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationPhysicalExecutor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationPolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationPolicy.java index 97f7dd20ff..abfcfa2e5f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationPolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationPolicy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationTask.java index 514e69f808..093ea48fd1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationTask.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration; import cn.edu.tsinghua.iginx.metadata.entity.FragmentMeta; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationType.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationType.java index 33be62cd1a..41714e4606 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration; public enum MigrationType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationUtils.java index 387b04d29b..f1ec023d3e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/MigrationUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration; import java.util.Collection; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/SimulationBasedMigrationPolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/SimulationBasedMigrationPolicy.java index e5547f743e..1246645701 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/SimulationBasedMigrationPolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/SimulationBasedMigrationPolicy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration; import cn.edu.tsinghua.iginx.metadata.entity.FragmentMeta; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationExecuteTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationExecuteTask.java index 6319c7a161..2e3400e6bd 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationExecuteTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationExecuteTask.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration.recover; import cn.edu.tsinghua.iginx.metadata.entity.FragmentMeta; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationExecuteType.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationExecuteType.java index be1b2ea346..6165648564 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationExecuteType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationExecuteType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration.recover; public enum MigrationExecuteType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationLogger.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationLogger.java index b016a6c299..8fdee0a1a9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationLogger.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationLogger.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration.recover; import cn.edu.tsinghua.iginx.migration.MigrationTask; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationLoggerAnalyzer.java b/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationLoggerAnalyzer.java index a1cea1e480..5415bc89ee 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationLoggerAnalyzer.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/migration/recover/MigrationLoggerAnalyzer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.migration.recover; import static cn.edu.tsinghua.iginx.migration.recover.MigrationLogger.MIGRATION_EXECUTE_TASK_END; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/monitor/HotSpotMonitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/monitor/HotSpotMonitor.java index 08e02bcbd5..69b21faba9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/monitor/HotSpotMonitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/monitor/HotSpotMonitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.monitor; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/monitor/IMonitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/monitor/IMonitor.java index 8b5753fd5f..7b568b06c4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/monitor/IMonitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/monitor/IMonitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.monitor; public interface IMonitor { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/monitor/MonitorManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/monitor/MonitorManager.java index 8a18f413a1..ccef172346 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/monitor/MonitorManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/monitor/MonitorManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.monitor; import cn.edu.tsinghua.iginx.compaction.CompactionManager; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/monitor/RequestsMonitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/monitor/RequestsMonitor.java index 0d7b77feff..43b3e2f8c6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/monitor/RequestsMonitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/monitor/RequestsMonitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.monitor; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/BrokerAuthenticator.java b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/BrokerAuthenticator.java index c1d4e2f1c4..fa32f92d2a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/BrokerAuthenticator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/BrokerAuthenticator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.mqtt; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/IPayloadFormatter.java b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/IPayloadFormatter.java index 390b10a014..f36afd8daa 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/IPayloadFormatter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/IPayloadFormatter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.mqtt; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/JsonPayloadFormatter.java b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/JsonPayloadFormatter.java index 8d75e19f2b..781e990911 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/JsonPayloadFormatter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/JsonPayloadFormatter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.mqtt; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/MQTTService.java b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/MQTTService.java index 0bac762728..8239230a15 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/MQTTService.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/MQTTService.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.mqtt; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/Message.java b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/Message.java index 4fd3042e34..3c37170ba8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/Message.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/Message.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.mqtt; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/PayloadFormatManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/PayloadFormatManager.java index f054fde751..284b61fb7e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/PayloadFormatManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/PayloadFormatManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.mqtt; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/PublishHandler.java b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/PublishHandler.java index 4366ef3460..40cf34bb85 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/PublishHandler.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/mqtt/PublishHandler.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.mqtt; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/notice/EmailNotifier.java b/core/src/main/java/cn/edu/tsinghua/iginx/notice/EmailNotifier.java index 8bc6ade0c2..13fac5a02e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/notice/EmailNotifier.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/notice/EmailNotifier.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.notice; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/AbstractPolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/AbstractPolicy.java index 1b426a0922..289ca85cc2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/AbstractPolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/AbstractPolicy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy; import cn.edu.tsinghua.iginx.metadata.IMetaManager; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/IPolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/IPolicy.java index d693ef58ef..0c8f001f5c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/IPolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/IPolicy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy; import cn.edu.tsinghua.iginx.metadata.IMetaManager; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/PolicyManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/PolicyManager.java index d86372fceb..8325a08ab0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/PolicyManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/PolicyManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy; import cn.edu.tsinghua.iginx.metadata.DefaultMetaManager; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/Utils.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/Utils.java index 53f3033b54..db5ed3ac5f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/Utils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/Utils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy; import cn.edu.tsinghua.iginx.conf.Constants; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/historical/HistoricalPolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/historical/HistoricalPolicy.java index 10e698483d..924bb5f5fe 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/historical/HistoricalPolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/historical/HistoricalPolicy.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.policy.historical; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/naive/NaivePolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/naive/NaivePolicy.java index 3372fa62bc..99ed26c00c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/naive/NaivePolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/naive/NaivePolicy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy.naive; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/naive/Sampler.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/naive/Sampler.java index 431d9fce16..87d803fd37 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/naive/Sampler.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/naive/Sampler.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy.naive; import java.util.*; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/ColumnCalDO.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/ColumnCalDO.java index 2afb07a2fa..ac5e925c52 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/ColumnCalDO.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/ColumnCalDO.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy.simple; import lombok.Data; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/FragmentCreator.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/FragmentCreator.java index 0525865bfe..891d7a4b24 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/FragmentCreator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/FragmentCreator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy.simple; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/SimplePolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/SimplePolicy.java index 324c5bfd01..53c5bd31e5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/SimplePolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/simple/SimplePolicy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.policy.simple; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/policy/test/KeyRangeTestPolicy.java b/core/src/main/java/cn/edu/tsinghua/iginx/policy/test/KeyRangeTestPolicy.java index 482423aaa4..599f86d6d3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/policy/test/KeyRangeTestPolicy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/policy/test/KeyRangeTestPolicy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - /** 该Policy是为了测试而写的,不要在生产环境中使用 该Policy会生成KeyRange不同的Fragment,用于测试。 */ package cn.edu.tsinghua.iginx.policy.test; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/resource/QueryResourceManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/resource/QueryResourceManager.java index e7b3d635ca..583b3c5338 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/resource/QueryResourceManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/resource/QueryResourceManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.resource; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/resource/ResourceManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/resource/ResourceManager.java index faf2befe35..85fb5cc74f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/resource/ResourceManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/resource/ResourceManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.resource; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/resource/system/DefaultSystemMetricsService.java b/core/src/main/java/cn/edu/tsinghua/iginx/resource/system/DefaultSystemMetricsService.java index b9b4dcaf18..5cb8d875f4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/resource/system/DefaultSystemMetricsService.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/resource/system/DefaultSystemMetricsService.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.resource.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/resource/system/SystemMetricsService.java b/core/src/main/java/cn/edu/tsinghua/iginx/resource/system/SystemMetricsService.java index 3a44a03d03..dd10b9a243 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/resource/system/SystemMetricsService.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/resource/system/SystemMetricsService.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.resource.system; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/MetricsResource.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/MetricsResource.java index 6d8c5bb66b..6c9b3f8cb1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/MetricsResource.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/MetricsResource.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestServer.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestServer.java index cf0f43ceff..0ee55a8c7a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestServer.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestServer.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestSession.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestSession.java index b5fe2068fe..9a71aa82dc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestSession.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestSession.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestUtils.java index 6f50593233..b18405b3a1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/RestUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.rest; import cn.edu.tsinghua.iginx.session.SessionQueryDataSet; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Annotation.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Annotation.java index e75f9a654b..f843869cc6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Annotation.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Annotation.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.rest.bean; import com.fasterxml.jackson.databind.JsonNode; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/AnnotationLimit.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/AnnotationLimit.java index 609157764b..67e48349a3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/AnnotationLimit.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/AnnotationLimit.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.rest.bean; import java.util.*; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Metric.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Metric.java index b13c927186..ae58c68881 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Metric.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Metric.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.bean; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Query.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Query.java index 0af8e5fcb1..d7d557faee 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Query.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/Query.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.bean; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryMetric.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryMetric.java index 07a3b5dfbe..a1d95e2e34 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryMetric.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryMetric.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.bean; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryResult.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryResult.java index f05ce37fb3..5ad27bf016 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryResult.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryResult.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.bean; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryResultDataset.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryResultDataset.java index 60d93181fc..1db08fe360 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryResultDataset.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/bean/QueryResultDataset.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.bean; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/insert/DataPointsParser.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/insert/DataPointsParser.java index 44a5e4146f..99d2a8ef20 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/insert/DataPointsParser.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/insert/DataPointsParser.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.insert; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/insert/InsertWorker.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/insert/InsertWorker.java index 2beaa32fbc..1a8bd0b494 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/insert/InsertWorker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/insert/InsertWorker.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.insert; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/QueryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/QueryExecutor.java index 81559fb414..822cc9f583 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/QueryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/QueryExecutor.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/QueryParser.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/QueryParser.java index 459b88ee69..c7ed4f3880 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/QueryParser.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/QueryParser.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/Filter.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/Filter.java index b351d78ad5..58f15c004d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/Filter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/Filter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregator.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregator.java index 98cf57913e..5edcbb9e45 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorAvg.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorAvg.java index b102b17241..21e25f53a2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorAvg.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorAvg.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorCount.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorCount.java index 0b6b6a4399..b86113fdcf 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorCount.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorCount.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDev.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDev.java index 3c77712706..53eef15eda 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDev.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDev.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDiff.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDiff.java index ee72c3ca5c..0fba04ce5a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDiff.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDiff.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDiv.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDiv.java index 574d7654cd..fe7dc21a4f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDiv.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorDiv.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorFilter.java index ad2225dc83..5cfac1e926 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorFilter.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorFirst.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorFirst.java index a09b6d2fc6..d9f389a5fd 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorFirst.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorFirst.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorLast.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorLast.java index 4cc112a0bb..bdb57cfd5d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorLast.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorLast.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorMax.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorMax.java index e122ac759f..d1fd66408d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorMax.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorMax.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorMin.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorMin.java index 8ab41b0817..d3b3af4504 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorMin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorMin.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorNone.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorNone.java index 51961d0a48..acd6d4f9ea 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorNone.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorNone.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorPercentile.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorPercentile.java index 4daf1cd00f..709610a070 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorPercentile.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorPercentile.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorRate.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorRate.java index 26385e635b..2dddf24804 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorRate.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorRate.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSampler.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSampler.java index 111a60d9db..bfc7204dbc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSampler.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSampler.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSaveAs.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSaveAs.java index e21df27f77..7172f13e50 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSaveAs.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSaveAs.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSum.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSum.java index c82489b3cd..b9ddfa9775 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSum.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorSum.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorType.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorType.java index e756c418d2..149a37040c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryAggregatorType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryShowColumns.java b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryShowColumns.java index 0ab1083800..19f6dd4e84 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryShowColumns.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/rest/query/aggregator/QueryShowColumns.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.rest.query.aggregator; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index 0093d529b9..42ac0bebf4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.KEY_MAX_VAL; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/SQLConstant.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/SQLConstant.java index 7c0093d987..5c3308165c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/SQLConstant.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/SQLConstant.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql; public class SQLConstant { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/SQLParseError.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/SQLParseError.java index 3d936031ad..809e13d28a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/SQLParseError.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/SQLParseError.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql; import org.antlr.v4.runtime.BaseErrorListener; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/exception/SQLParserException.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/exception/SQLParserException.java index d86e7f1b41..e49fba3b48 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/exception/SQLParserException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/exception/SQLParserException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.exception; public class SQLParserException extends RuntimeException { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/AddStorageEngineStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/AddStorageEngineStatement.java index e3e433feac..09da60e334 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/AddStorageEngineStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/AddStorageEngineStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/AlterEngineStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/AlterEngineStatement.java index a8af8b1270..66ba3664d0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/AlterEngineStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/AlterEngineStatement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.sql.statement; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CancelJobStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CancelJobStatement.java index 51b22e74d6..4ed8483b68 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CancelJobStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CancelJobStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ChangePasswordStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ChangePasswordStatement.java index 0ca042c80c..661772250b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ChangePasswordStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ChangePasswordStatement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.sql.statement; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ClearDataStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ClearDataStatement.java index 7d74986336..c20d4fa66a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ClearDataStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ClearDataStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; public class ClearDataStatement extends DataStatement { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CommitTransformJobStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CommitTransformJobStatement.java index 216c894581..7a5dc70f72 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CommitTransformJobStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CommitTransformJobStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CompactStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CompactStatement.java index 31b5ff9671..2473b43ce3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CompactStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CompactStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.compaction.CompactionManager; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CountPointsStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CountPointsStatement.java index b74a2b0147..d54e04079a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CountPointsStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CountPointsStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; public class CountPointsStatement extends DataStatement { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CreateUserStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CreateUserStatement.java index 49745b79a4..9d912a690f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CreateUserStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/CreateUserStatement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.sql.statement; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DataStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DataStatement.java index ff16efcc46..ca293d6ae4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DataStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DataStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; public abstract class DataStatement extends Statement {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DeleteColumnsStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DeleteColumnsStatement.java index 5b6c9f26d5..398b44e6ff 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DeleteColumnsStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DeleteColumnsStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DeleteStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DeleteStatement.java index f12db217a4..b7d021add9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DeleteStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DeleteStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DropTaskStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DropTaskStatement.java index d1abfc45f7..e777404d30 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DropTaskStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DropTaskStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DropUserStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DropUserStatement.java index 2346f0e76c..d82d038a7e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DropUserStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/DropUserStatement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.sql.statement; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ExportFileFromSelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ExportFileFromSelectStatement.java index 96323a8e68..5b713f8107 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ExportFileFromSelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ExportFileFromSelectStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.engine.shared.file.FileType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/GrantUserStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/GrantUserStatement.java index e1a9c9f672..a9eb63774c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/GrantUserStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/GrantUserStatement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.sql.statement; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertFromCsvStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertFromCsvStatement.java index d7b65e444d..8878412151 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertFromCsvStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertFromCsvStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.engine.shared.file.read.ImportFile; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertFromSelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertFromSelectStatement.java index 4d8d80f445..951e979a0e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertFromSelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertFromSelectStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.sql.statement.select.SelectStatement; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertStatement.java index 7728b8e4fa..435192a6ee 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/InsertStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.engine.shared.data.write.RawData; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RegisterTaskStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RegisterTaskStatement.java index 69d7d43a04..19189a7bae 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RegisterTaskStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RegisterTaskStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveHistoryDataSourceStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveHistoryDataSourceStatement.java index cc962ea43c..5905f469b4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveHistoryDataSourceStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveHistoryDataSourceStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SetConfigStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SetConfigStatement.java index 4c7a474985..245aa72e50 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SetConfigStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SetConfigStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SetRulesStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SetRulesStatement.java index f7a9235e60..35724f2476 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SetRulesStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SetRulesStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowClusterInfoStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowClusterInfoStatement.java index fa5dd1ce85..45a285f8bb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowClusterInfoStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowClusterInfoStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowColumnsStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowColumnsStatement.java index 19eea0ebc9..b153d972d1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowColumnsStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowColumnsStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowConfigStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowConfigStatement.java index b69ef3da0b..3f569763b9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowConfigStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowConfigStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowEligibleJobStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowEligibleJobStatement.java index d877c44c9f..e311a614e7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowEligibleJobStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowEligibleJobStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowJobStatusStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowJobStatusStatement.java index 06348630bc..9586d3a51e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowJobStatusStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowJobStatusStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowRegisterTaskStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowRegisterTaskStatement.java index e02e2e75ac..57f6dc9ce1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowRegisterTaskStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowRegisterTaskStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowReplicationStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowReplicationStatement.java index a9ccf435d0..cbe510b6bc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowReplicationStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowReplicationStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowRulesStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowRulesStatement.java index 9198ddc19c..2d7b54f7c6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowRulesStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowRulesStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowSessionIDStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowSessionIDStatement.java index a3c0647afa..15718f54da 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowSessionIDStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowSessionIDStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.IginxWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowUserStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowUserStatement.java index a7976b2df4..610fcb621f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowUserStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/ShowUserStatement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.sql.statement; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/Statement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/Statement.java index ee0a81c76f..499c0bde53 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/Statement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/Statement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; public abstract class Statement { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/StatementType.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/StatementType.java index fdfbcc0f2d..ea2a886202 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/StatementType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/StatementType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; public enum StatementType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SystemStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SystemStatement.java index a95d887adf..df3ae62b78 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SystemStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/SystemStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/CteFromPart.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/CteFromPart.java index 75840a9e5a..eaf8a38436 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/CteFromPart.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/CteFromPart.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.frompart; import static cn.edu.tsinghua.iginx.engine.shared.Constants.ALL_PATH_SUFFIX; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/FromPart.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/FromPart.java index 4cbb2d5bc5..783e32fdd2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/FromPart.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/FromPart.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.frompart; import cn.edu.tsinghua.iginx.sql.statement.frompart.join.JoinCondition; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/FromPartType.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/FromPartType.java index e74891f72a..60d03ae90f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/FromPartType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/FromPartType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.frompart; public enum FromPartType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/PathFromPart.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/PathFromPart.java index 5a808ae6eb..f6e5ca4fd9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/PathFromPart.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/PathFromPart.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.frompart; import static cn.edu.tsinghua.iginx.engine.shared.Constants.ALL_PATH_SUFFIX; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/ShowColumnsFromPart.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/ShowColumnsFromPart.java index 2a8b66d6a4..f18098082e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/ShowColumnsFromPart.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/ShowColumnsFromPart.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.frompart; import cn.edu.tsinghua.iginx.engine.shared.Constants; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/SubQueryFromPart.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/SubQueryFromPart.java index 7531cd20e6..1d444a6a36 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/SubQueryFromPart.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/SubQueryFromPart.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.frompart; import cn.edu.tsinghua.iginx.engine.shared.Constants; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinCondition.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinCondition.java index 5e41d38f14..d271ab2367 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinCondition.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinCondition.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.frompart.join; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinType.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinType.java index 54969f25e6..09d2aab50a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.frompart.join; public enum JoinType { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java index 8cce659cd2..e95b688d1e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/CommonTableExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/CommonTableExpression.java index e08925a4d6..8527d85889 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/CommonTableExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/CommonTableExpression.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java index dd51161795..f88cd336ce 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java index 5b60d4ee03..f7c02ea093 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select; import static cn.edu.tsinghua.iginx.sql.SQLConstant.DOT; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/FromClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/FromClause.java index 8b076818f9..74bd222986 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/FromClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/FromClause.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select.subclause; import cn.edu.tsinghua.iginx.sql.statement.frompart.FromPart; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/GroupByClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/GroupByClause.java index 017c1b82de..6c9e177241 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/GroupByClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/GroupByClause.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select.subclause; import cn.edu.tsinghua.iginx.sql.statement.select.UnarySelectStatement.QueryType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/HavingClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/HavingClause.java index 4effb9ce21..9fd46deb8f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/HavingClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/HavingClause.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select.subclause; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/LimitClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/LimitClause.java index 9dd5398185..d5e94ddead 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/LimitClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/LimitClause.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select.subclause; public class LimitClause { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/OrderByClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/OrderByClause.java index 585f75a831..a8e33c5d72 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/OrderByClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/OrderByClause.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select.subclause; import java.util.ArrayList; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java index a19eb651a1..f1308d89c8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/SelectClause.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select.subclause; import cn.edu.tsinghua.iginx.engine.shared.expr.BinaryExpression; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/WhereClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/WhereClause.java index 00434d9da6..ee3a6d0f73 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/WhereClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/WhereClause.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.statement.select.subclause; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java index 899bf55126..0d4b05dea8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql.utils; import cn.edu.tsinghua.iginx.engine.shared.expr.BinaryExpression; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/AbstractStageStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/AbstractStageStatisticsCollector.java index 024b685226..3d65aac74e 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/AbstractStageStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/AbstractStageStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ExecuteStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ExecuteStatisticsCollector.java index dd4a880e30..bb272a793b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ExecuteStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ExecuteStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.Result; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IExecuteStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IExecuteStatisticsCollector.java index 9a6c7883b2..cc696dec7a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IExecuteStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IExecuteStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.processor.PostExecuteProcessor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ILogicalStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ILogicalStatisticsCollector.java index 78a2f0b4a5..686b0ea405 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ILogicalStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ILogicalStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.processor.PostLogicalProcessor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IParseStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IParseStatisticsCollector.java index ae1dc8b36d..b54518b85a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IParseStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IParseStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.processor.PostParseProcessor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IPhysicalStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IPhysicalStatisticsCollector.java index 685b4eabc3..13938750ec 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IPhysicalStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IPhysicalStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.processor.PostPhysicalProcessor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IStatisticsCollector.java index 0c3de7a791..ed828485cb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/IStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; public interface IStatisticsCollector diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/LogicalStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/LogicalStatisticsCollector.java index 430f892a87..8ac4ce295f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/LogicalStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/LogicalStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.processor.PostLogicalProcessor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ParseStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ParseStatisticsCollector.java index ccb31eca68..a15e548b68 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ParseStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/ParseStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.processor.PostParseProcessor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/PhysicalStatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/PhysicalStatisticsCollector.java index f2c2719348..f1085d79d8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/PhysicalStatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/PhysicalStatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.processor.PostPhysicalProcessor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/Statistics.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/Statistics.java index b93d32d907..4fbb6e3c3d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/Statistics.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/Statistics.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/StatisticsCollector.java b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/StatisticsCollector.java index afd481f870..26a8473f2a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/statistics/StatisticsCollector.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/statistics/StatisticsCollector.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.statistics; import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Checker.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Checker.java index ef01135f0f..832bcee399 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Checker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Checker.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.api; import cn.edu.tsinghua.iginx.transform.pojo.Job; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Driver.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Driver.java index d759876153..25820fe5df 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Driver.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Driver.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.api; import cn.edu.tsinghua.iginx.transform.driver.IPCWorker; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Reader.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Reader.java index a5559c65d9..1b6346fbc2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Reader.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Reader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.api; import cn.edu.tsinghua.iginx.transform.data.BatchData; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Runner.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Runner.java index 2d8a0a617d..39214670a1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Runner.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Runner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.api; import cn.edu.tsinghua.iginx.transform.exception.TransformException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Stage.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Stage.java index f5fec0f5a8..19940ff83b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Stage.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Stage.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.api; import cn.edu.tsinghua.iginx.thrift.DataFlowType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Writer.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Writer.java index 82ae54a2fe..4a8024447b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Writer.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/api/Writer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.api; import cn.edu.tsinghua.iginx.transform.data.BatchData; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ArrowReader.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ArrowReader.java index 9dc490580c..56b35f60c0 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ArrowReader.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ArrowReader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ArrowWriter.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ArrowWriter.java index 05eb2c596a..7bb683faaf 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ArrowWriter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ArrowWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/BatchData.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/BatchData.java index f4a473d8ab..dc2f16f357 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/BatchData.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/BatchData.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/CollectionWriter.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/CollectionWriter.java index cfdacf5dbf..4484bf8545 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/CollectionWriter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/CollectionWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ExportWriter.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ExportWriter.java index 72f3d7ae05..5454268a45 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ExportWriter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/ExportWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.transform.api.Writer; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/Exporter.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/Exporter.java index 52ca86a676..1d0172e546 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/Exporter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/Exporter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.transform.utils.Mutex; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/FileAppendWriter.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/FileAppendWriter.java index 110a992f9d..ea611cf572 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/FileAppendWriter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/FileAppendWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.auth.FilePermissionManager; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/IginXWriter.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/IginXWriter.java index 698ec3ff90..444294dbee 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/IginXWriter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/IginXWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.TRANSFORM_PREFIX; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/LogWriter.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/LogWriter.java index 0520bd2526..946bb689ab 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/LogWriter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/LogWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.constant.GlobalConstant; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/PemjaReader.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/PemjaReader.java index 69fba7f31a..7fc29d3c90 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/PemjaReader.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/PemjaReader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import static cn.edu.tsinghua.iginx.utils.TagKVUtils.fromFullName; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/PemjaWriter.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/PemjaWriter.java index 311da56331..a641fc262c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/PemjaWriter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/PemjaWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.transform.api.Writer; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/RowStreamReader.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/RowStreamReader.java index cf7d7cc77c..79465dffa6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/RowStreamReader.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/RowStreamReader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/SplitReader.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/SplitReader.java index 465a5f58db..3eb37cadc3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/SplitReader.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/data/SplitReader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.data; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/IPCWorker.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/IPCWorker.java index cb6a563ce0..2fcc6f717f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/IPCWorker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/IPCWorker.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.driver; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaDriver.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaDriver.java index ac9329561d..559134a665 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaDriver.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaDriver.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.driver; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaWorker.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaWorker.java index b15465dc20..d4cd7e96dc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaWorker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaWorker.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.driver; import static cn.edu.tsinghua.iginx.transform.utils.Constants.UDF_CLASS; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PythonDriver.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PythonDriver.java index 7ca9fe8b58..72861271a1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PythonDriver.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PythonDriver.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.driver; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/CreateWorkerException.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/CreateWorkerException.java index ffc40d43b6..fa1926c0b2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/CreateWorkerException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/CreateWorkerException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exception; public class CreateWorkerException extends TransformException { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/ReadBatchException.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/ReadBatchException.java index 6d7f847649..2ba1900c8f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/ReadBatchException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/ReadBatchException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exception; public class ReadBatchException extends TransformException { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/TransformException.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/TransformException.java index 3e384da994..6674c01f6c 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/TransformException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/TransformException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exception; public class TransformException extends Exception { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/UnknownArgumentException.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/UnknownArgumentException.java index 344eff4550..66c70abbc6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/UnknownArgumentException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/UnknownArgumentException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exception; public class UnknownArgumentException extends TransformException { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/UnknownDataFlowException.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/UnknownDataFlowException.java index 71949376b1..966cc3a404 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/UnknownDataFlowException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/UnknownDataFlowException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exception; import cn.edu.tsinghua.iginx.thrift.DataFlowType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/WriteBatchException.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/WriteBatchException.java index 9de96f644d..488acf0e26 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/WriteBatchException.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exception/WriteBatchException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exception; public class WriteBatchException extends TransformException { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/BatchStageRunner.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/BatchStageRunner.java index 6cab1ff374..4867bb4189 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/BatchStageRunner.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/BatchStageRunner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exec; import cn.edu.tsinghua.iginx.transform.api.Runner; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/JobRunner.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/JobRunner.java index bea851de4b..0e21132656 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/JobRunner.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/JobRunner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exec; import cn.edu.tsinghua.iginx.thrift.DataFlowType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/JobValidationChecker.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/JobValidationChecker.java index 4cef4756f9..9ea75e0479 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/JobValidationChecker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/JobValidationChecker.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exec; import cn.edu.tsinghua.iginx.thrift.DataFlowType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/ScheduledJob.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/ScheduledJob.java index f6cae81aab..89b7f17fc2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/ScheduledJob.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/ScheduledJob.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.transform.exec; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/StreamStageRunner.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/StreamStageRunner.java index b47eeb3bfe..19c9448092 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/StreamStageRunner.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/StreamStageRunner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exec; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/TaskManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/TaskManager.java index 63b4998901..a611e3b547 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/TaskManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/TaskManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exec; public class TaskManager {} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/TransformJobManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/TransformJobManager.java index 6a5402a570..91933eb695 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/TransformJobManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/exec/TransformJobManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.exec; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/BatchStage.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/BatchStage.java index 4a8f7189af..15d1bca5a9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/BatchStage.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/BatchStage.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.pojo; import cn.edu.tsinghua.iginx.thrift.DataFlowType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/IginXTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/IginXTask.java index f0ce7d4f2e..c00bbae2a6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/IginXTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/IginXTask.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.pojo; import cn.edu.tsinghua.iginx.thrift.TaskInfo; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/Job.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/Job.java index 877dc9e1e3..04287747c9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/Job.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/Job.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.pojo; import cn.edu.tsinghua.iginx.thrift.*; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/JobScheduleTriggerMaker.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/JobScheduleTriggerMaker.java index cd56a39e9e..55901821c3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/JobScheduleTriggerMaker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/JobScheduleTriggerMaker.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.transform.pojo; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/PythonTask.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/PythonTask.java index 42b10a44ca..ae49f59afb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/PythonTask.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/PythonTask.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.pojo; import cn.edu.tsinghua.iginx.thrift.DataFlowType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/StreamStage.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/StreamStage.java index 8cf2a4e530..7e85595196 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/StreamStage.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/StreamStage.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.pojo; import cn.edu.tsinghua.iginx.thrift.DataFlowType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/Task.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/Task.java index 7026da763a..cb90763786 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/Task.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/Task.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.pojo; import cn.edu.tsinghua.iginx.thrift.DataFlowType; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/TaskFactory.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/TaskFactory.java index 77dd82f434..ca8e0a831a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/TaskFactory.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/TaskFactory.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.pojo; import cn.edu.tsinghua.iginx.thrift.TaskInfo; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/TransformJobFinishListener.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/TransformJobFinishListener.java index fda033d779..417a4c879f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/TransformJobFinishListener.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/pojo/TransformJobFinishListener.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.transform.pojo; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/Constants.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/Constants.java index 53d3eb49d9..c769a14a14 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/Constants.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/Constants.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.utils; import java.util.HashMap; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/Mutex.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/Mutex.java index 2d88bf1585..d07f794168 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/Mutex.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/Mutex.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.utils; import org.slf4j.Logger; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/RedirectLogger.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/RedirectLogger.java index bf4916983c..0cc5dc98d2 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/RedirectLogger.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/RedirectLogger.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.utils; import java.io.InputStream; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/TypeUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/TypeUtils.java index 7c62485dea..c4be426000 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/TypeUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/utils/TypeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.transform.utils; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/core/src/main/resources/file-permission.properties b/core/src/main/resources/file-permission.properties index a8b8148fa5..074e6317d2 100644 --- a/core/src/main/resources/file-permission.properties +++ b/core/src/main/resources/file-permission.properties @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # refreshInterval=1000 diff --git a/core/src/main/resources/log4j2.properties b/core/src/main/resources/log4j2.properties index 78ec9c18c3..965a3c117a 100644 --- a/core/src/main/resources/log4j2.properties +++ b/core/src/main/resources/log4j2.properties @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # Update log configuration from file every 30 seconds diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/auth/FilePermissionManagerTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/auth/FilePermissionManagerTest.java index 0877da1f65..38874e516c 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/auth/FilePermissionManagerTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/auth/FilePermissionManagerTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.auth; import static cn.edu.tsinghua.iginx.auth.utils.FilePermissionRuleNameFilters.defaultRules; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/compaction/LowAccessFragmentCompactionTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/compaction/LowAccessFragmentCompactionTest.java index d7c9a1d1d7..6078d547c2 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/compaction/LowAccessFragmentCompactionTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/compaction/LowAccessFragmentCompactionTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/compaction/LowWriteFragmentCompactionTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/compaction/LowWriteFragmentCompactionTest.java index 7163a81e81..be3a29f700 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/compaction/LowWriteFragmentCompactionTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/compaction/LowWriteFragmentCompactionTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/compaction/PhysicalEngineMock.java b/core/src/test/java/cn/edu/tsinghua/iginx/compaction/PhysicalEngineMock.java index a5e9c375bf..24f37237b6 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/compaction/PhysicalEngineMock.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/compaction/PhysicalEngineMock.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.compaction; import cn.edu.tsinghua.iginx.engine.physical.PhysicalEngine; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/conf/FilePermissionConfigTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/conf/FilePermissionConfigTest.java index 2c59afaa35..2f1a6cd3ce 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/conf/FilePermissionConfigTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/conf/FilePermissionConfigTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.conf; import static org.junit.Assert.*; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtilsTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtilsTest.java index 57b8c5d6d8..29f2e9ac47 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtilsTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtilsTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.utils; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/logical/utils/PathUtilsTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/logical/utils/PathUtilsTest.java index f181be96f5..f790bf0d6b 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/logical/utils/PathUtilsTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/logical/utils/PathUtilsTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.logical.utils; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java index 2c38628fa6..ae87684f02 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutorTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutorTest.java index 33b17da65d..8206d16f5c 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutorTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutorTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.naive; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutorTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutorTest.java index d64f43bc5f..496262ab26 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutorTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutorTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.stream; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/ColumnKeyTranslatorTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/ColumnKeyTranslatorTest.java index bd10ccf245..46a3fba1bc 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/ColumnKeyTranslatorTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/storage/utils/ColumnKeyTranslatorTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.engine.physical.storage.utils; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/shared/function/system/MaxTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/shared/function/system/MaxTest.java index c4b3fedc91..fabfe6ec0b 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/shared/function/system/MaxTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/shared/function/system/MaxTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.engine.shared.function.system; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ColumnsIntervalTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ColumnsIntervalTest.java index 2653ca2033..ac44b1ba62 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ColumnsIntervalTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ColumnsIntervalTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.entity; import static org.junit.Assert.*; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ExtraParamTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ExtraParamTest.java index f4ea3e190d..e00c415279 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ExtraParamTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/metadata/entity/ExtraParamTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.metadata.entity; import static cn.edu.tsinghua.iginx.metadata.utils.StorageEngineUtils.checkEmbeddedStorageExtraParams; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/notice/EmailNotifierTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/notice/EmailNotifierTest.java index f8b8ccdab8..1dfce1fb7f 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/notice/EmailNotifierTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/notice/EmailNotifierTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.notice; import static org.junit.Assert.*; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/rest/ParseTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/rest/ParseTest.java index f5e3b2e962..bb15031ece 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/rest/ParseTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/rest/ParseTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.rest; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/sql/FilterVisitorTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/sql/FilterVisitorTest.java index 00e07e5681..5a007956df 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/sql/FilterVisitorTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/sql/FilterVisitorTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java index dfc0f3fbc1..6ee961dbb3 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql; import static org.junit.Assert.assertEquals; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/sql/TestUtils.java b/core/src/test/java/cn/edu/tsinghua/iginx/sql/TestUtils.java index 08cd7d2532..ce631d05f6 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/sql/TestUtils.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/sql/TestUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.sql; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/transform/TriggerTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/transform/TriggerTest.java index c008dc85c5..8b931ba4b1 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/transform/TriggerTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/transform/TriggerTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.transform; diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/transform/YamlReadTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/transform/YamlReadTest.java index c4a0b065b4..ff572b9d92 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/transform/YamlReadTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/transform/YamlReadTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.transform; diff --git a/dataSource/filesystem/pom.xml b/dataSource/filesystem/pom.xml index 0f403499ec..ab237e1bcd 100644 --- a/dataSource/filesystem/pom.xml +++ b/dataSource/filesystem/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/AbstractConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/AbstractConfig.java index b29050db93..93d37aedfa 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/AbstractConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/AbstractConfig.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Closeables.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Closeables.java index 4ca4435bbd..019b9faf36 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Closeables.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Closeables.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Configs.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Configs.java index e20e46100f..b447d1ba31 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Configs.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Configs.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/DataUnits.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/DataUnits.java index 2690a9a4de..cc2dfcbc56 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/DataUnits.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/DataUnits.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Fields.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Fields.java index 7a31140102..4603ec08eb 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Fields.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Fields.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemException.java index fc88c43952..a48613435b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemRowStream.java index 672994801a..f39ff7f2a3 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/FileSystemRowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java index f51f60febf..9f6bf52a4f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/IginxPaths.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/IginxPaths.java index 869d24ef21..5289ab41d0 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/IginxPaths.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/IginxPaths.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Patterns.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Patterns.java index 3ad70ac78c..ef1f48673c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Patterns.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Patterns.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Ranges.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Ranges.java index 302bd8424c..1dfbb0787e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Ranges.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Ranges.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/RowStreams.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/RowStreams.java index 034fe6eae6..74cdf249c7 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/RowStreams.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/RowStreams.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Strings.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Strings.java index f4b966603a..c7345da1f2 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Strings.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Strings.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/AbstractFileFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/AbstractFileFormat.java index 2bf5f45099..cb55d9f555 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/AbstractFileFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/AbstractFileFormat.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormat.java index f01c8c4efc..a034201f79 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormat.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormatManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormatManager.java index bd1c9d29b2..de57a02617 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormatManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/FileFormatManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/FilterUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/FilterUtils.java index c20f6d2618..b3a06fceb7 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/FilterUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/FilterUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IGroupConverter.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IGroupConverter.java index 95fc14de86..55ed166225 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IGroupConverter.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IGroupConverter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.format.parquet; import com.google.common.primitives.Ints; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetReader.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetReader.java index fb8cf2f2d7..fe77f5cdf2 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetReader.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetReader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetWriter.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetWriter.java index f2a47e42f6..d5adbd8ab3 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetWriter.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IParquetWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.format.parquet; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecord.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecord.java index 3ef2d87563..9ebccbe7c7 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecord.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecord.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.format.parquet; import java.util.*; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordDematerializer.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordDematerializer.java index 1ec4a4db60..09121e55bf 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordDematerializer.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordDematerializer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.format.parquet; import java.util.Collections; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordMaterializer.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordMaterializer.java index 09b705d85d..692188a71e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordMaterializer.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/IRecordMaterializer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.format.parquet; import shaded.iginx.org.apache.parquet.io.api.GroupConverter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormat.java index 5934242a70..f3f8c03d9d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormat.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format.parquet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatReader.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatReader.java index 5db250797b..b212693d38 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatReader.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatReader.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format.parquet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatRowStream.java index 9a0747eda9..6edeb5e741 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetFormatRowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format.parquet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ProjectUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ProjectUtils.java index c7b8d3074e..6285902dda 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ProjectUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ProjectUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.format.parquet; import static cn.edu.tsinghua.iginx.filesystem.format.parquet.IRecordDematerializer.OBJECT_MODEL_NAME_VALUE; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormat.java index 5fccc4764e..80a5d4c265 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormat.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format.raw; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormatRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormatRowStream.java index 513cda0220..192f37d04c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormatRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawFormatRowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format.raw; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReader.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReader.java index 2ace402eec..07cd7d1477 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReader.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReader.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format.raw; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReaderConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReaderConfig.java index 6d3110e1b4..f7588f3029 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReaderConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/format/raw/RawReaderConfig.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format.raw; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemConfig.java index 3bb66175b9..a88d9adf6f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemConfig.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemService.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemService.java index 41a4bec9a1..53ea462517 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemService.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/FileSystemService.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/Service.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/Service.java index 5d90f2139d..f6f1e16a3e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/Service.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/Service.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.service; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientConfig.java index 834ad5c85d..8ae061d725 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientConfig.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientObjectMappingUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientObjectMappingUtils.java index ac79450d5a..6af3e13cc6 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientObjectMappingUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/ClientObjectMappingUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteFileSystemException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteFileSystemException.java index ce790bbdb1..e28d7a9d7e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteFileSystemException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteFileSystemException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteService.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteService.java index 195c45bd23..04852fa727 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteService.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/RemoteService.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/TSocketPool.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/TSocketPool.java index dbab675c2b..07234ae96c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/TSocketPool.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/TSocketPool.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/ForwardTTransport.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/ForwardTTransport.java index 3df2674a9c..d64566ef80 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/ForwardTTransport.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/ForwardTTransport.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/PooledTTransport.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/PooledTTransport.java index 523b0ae0be..e794f1a805 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/PooledTTransport.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/PooledTTransport.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPool.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPool.java index 1da122a5c8..724e60c7f1 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPool.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPool.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPoolConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPoolConfig.java index 695e793beb..6d9e97cda7 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPoolConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/pool/TTransportPoolConfig.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.pool; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TSocketFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TSocketFactory.java index 4b74eb13cd..9d179bb162 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TSocketFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TSocketFactory.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.transport; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TTransportFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TTransportFactory.java index c80c7d652c..821ea1cf41 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TTransportFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/client/transport/TTransportFactory.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.client.transport; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/Server.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/Server.java index 25c77311a0..a19311e280 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/Server.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/Server.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.server; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerObjectMappingUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerObjectMappingUtils.java index 5bf2a38573..c81cbfe061 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerObjectMappingUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerObjectMappingUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.service.rpc.server; import static cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op.*; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerWorker.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerWorker.java index bb60081d9d..d9d16e9bb8 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerWorker.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/rpc/server/ServerWorker.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.rpc.server; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageConfig.java index fe9fba8a03..1247193f85 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageConfig.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageService.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageService.java index 02c413316f..0de8ce437b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageService.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/service/storage/StorageService.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/DataTarget.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/DataTarget.java index 3aad6e65d0..fa4af9d339 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/DataTarget.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/DataTarget.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileManager.java index dd0a1f5c56..590bc5d54d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructure.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructure.java index 2508c3b481..ec5adbaf51 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructure.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructure.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructureManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructureManager.java index 05812991be..156474401a 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructureManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/FileStructureManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/FileStructureException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/FileStructureException.java index 46ef3159f5..c07da7510b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/FileStructureException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/FileStructureException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.exception; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/NoSuchUnitException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/NoSuchUnitException.java index 9d9e1ecd22..4ba151c229 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/NoSuchUnitException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/exception/NoSuchUnitException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.exception; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystem.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystem.java index d08cb3acfe..853ef250a9 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystem.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystem.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystemWrapper.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystemWrapper.java index 1868596569..c96905e246 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystemWrapper.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/LegacyFilesystemWrapper.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java index 325378052f..0a3492564c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FileSystemTaskExecuteFailureException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exception; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FilesystemException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FilesystemException.java index 73fae00f27..874ec24978 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FilesystemException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exception/FilesystemException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/Executor.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/Executor.java index 697672246e..263e76a4a1 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/Executor.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/Executor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exec; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/FileSystemManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/FileSystemManager.java index f8c4c83b68..223651066d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/FileSystemManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/FileSystemManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exec; import static cn.edu.tsinghua.iginx.engine.logical.utils.PathUtils.MAX_CHAR; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/LocalExecutor.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/LocalExecutor.java index fce816251b..bb2f34bbf4 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/LocalExecutor.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/exec/LocalExecutor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.exec; import static cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils.getKeyRangesFromFilter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/DefaultFileOperator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/DefaultFileOperator.java index 85e3019cbb..74f5568a64 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/DefaultFileOperator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/DefaultFileOperator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file; import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.*; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/IFileOperator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/IFileOperator.java index 8ac9f29752..348c0f0729 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/IFileOperator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/IFileOperator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.entity.FileMeta; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/entity/FileMeta.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/entity/FileMeta.java index 151f812c7c..de8ed4a738 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/entity/FileMeta.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/file/entity/FileMeta.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.file.entity; import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.MAGIC_NUMBER; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java index 0e436744cf..18082ad2bb 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemHistoryQueryRowStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java index aaaf3c3846..c289bfb634 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemQueryRowStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemResultTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemResultTable.java index 1c814412d5..6c28475c7f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemResultTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/FileSystemResultTable.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/Record.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/Record.java index b994f05679..4272eef350 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/Record.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/query/entity/Record.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.query.entity; import cn.edu.tsinghua.iginx.engine.shared.data.Value; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/Constant.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/Constant.java index 9117c27832..039714449c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/Constant.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/Constant.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared; import java.nio.charset.Charset; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/FileType.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/FileType.java index f99507efeb..1f3aed52bf 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/FileType.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/shared/FileType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared; public enum FileType { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/FilePathUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/FilePathUtils.java index d199fb4a48..4512da5636 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/FilePathUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/FilePathUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools; import static cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.shared.Constant.*; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/LimitedSizeMap.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/LimitedSizeMap.java index 4a7c71b669..904056f1a9 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/LimitedSizeMap.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/LimitedSizeMap.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools; import java.util.LinkedHashMap; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/MemoryPool.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/MemoryPool.java index a13f1e1d3f..37464b5bbc 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/MemoryPool.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/filesystem/tools/MemoryPool.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.filesystem.tools; import java.util.Queue; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquet.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquet.java index 9c03b6932c..81a12d0865 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquet.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquet.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquetWrapper.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquetWrapper.java index 8c0880c123..614fef3610 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquetWrapper.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/LegacyParquetWrapper.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/Database.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/Database.java index 20ab6c8897..5d7b004e68 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/Database.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/Database.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/OneTierDB.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/OneTierDB.java index 532f898628..7bb8b8c185 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/OneTierDB.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/OneTierDB.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/ReadWriter.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/ReadWriter.java index 2a0a76bac7..20680ec77d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/ReadWriter.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/ReadWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/TableMeta.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/TableMeta.java index 8bf4b804b1..e029175ce9 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/TableMeta.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/api/TableMeta.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java index 82af6250a8..4a04f16dce 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ActiveMemTable.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java index 6e21321247..e92108e8b7 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/ArchivedMemTable.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java index 88119d0ffc..b92eee8646 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/DataBuffer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemColumn.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemColumn.java index 94157a454f..17a83e897e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemColumn.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemColumn.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTable.java index b9f1cd5479..79a892dc2e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTable.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java index ffe33d7506..6028f047a9 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/MemTableQueue.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java index 81574fb6f9..5b659438ba 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/Chunk.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java index 5e038186da..1d05577976 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunk.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java index 94b0c9d355..342715359e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/IndexedChunkType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java index 6bfc73a0aa..52e0beccc1 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/NoIndexChunk.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java index 2efcd1b334..8a943ab578 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/chunk/SkipListChunk.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java index 6db4b17e23..c68f429cee 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolver.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java index c9aca59573..e9fec3b22e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ConflictResolverType.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java index 74c77b789c..a7f0482219 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/NoneResolver.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java index 6983e27b6d..4b14bc9cd4 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/RecursiveTryLockResolver.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java index cef9e006fa..cc28c94b6b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/ThreadPoolResolver.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java index 939ee4a6ab..a4133fb7f8 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/buffer/conflict/TryLockResolver.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.conflict; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/compact/Flusher.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/compact/Flusher.java index 3d434b1621..a5d91ffd22 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/compact/Flusher.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/compact/Flusher.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.compact; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTable.java index bc8d485ff7..d881deb9aa 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTable.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java index 14966a91ac..af05ecbf74 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/DeletedTableMeta.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/FileTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/FileTable.java index 5791ed83ff..26205a43f8 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/FileTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/FileTable.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/MemoryTable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/MemoryTable.java index 5bdf127bf9..b42097322f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/MemoryTable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/MemoryTable.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/Table.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/Table.java index 1857a06083..c1811eacbe 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/Table.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/Table.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableIndex.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableIndex.java index 06a2851984..b3c1a86a35 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableIndex.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableIndex.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.api.TableMeta; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableStorage.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableStorage.java index 46397440c5..631cdebd0e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableStorage.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/lsm/table/TableStorage.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.table; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/AreaSet.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/AreaSet.java index f577e2bd22..991c6e0659 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/AreaSet.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/AreaSet.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util; import com.google.common.collect.Range; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/SequenceGenerator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/SequenceGenerator.java index b254f14662..97c3c1335e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/SequenceGenerator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/SequenceGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util; import java.util.concurrent.atomic.AtomicLong; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/WriteBatches.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/WriteBatches.java index a8870f7e15..280776da6b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/WriteBatches.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/WriteBatches.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java index e5669d7613..02e65f52c8 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/AreaFilterScanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java index 850f7b6cdb..fd8c86f386 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/BatchPlaneScanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java index 336d53bde5..dd9eec05b6 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ColumnUnionRowScanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ConcatScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ConcatScanner.java index 69d631e345..84a8acfb4b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ConcatScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ConcatScanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/DelegateScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/DelegateScanner.java index 38691a9629..4c06c41bcf 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/DelegateScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/DelegateScanner.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmptyScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmptyScanner.java index a04dac4380..4f0a81c71c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmptyScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmptyScanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java index f31dc39764..f471f14bfe 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/EmtpyHeadRowScanner.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/IteratorScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/IteratorScanner.java index 37ef782da4..b3954ad2c1 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/IteratorScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/IteratorScanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import java.util.Iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java index a244460214..00b1c8967f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/LazyRowScanner.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java index f2a6dcf949..21fa59076f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/ListenCloseScanner.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java index eedd4f6223..5919c2bc2a 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowConcatScanner.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java index c6fb3092eb..71a8df563a 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowScannerFactory.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java index 18537ee5e6..128c56d16c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/RowUnionScanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/Scanner.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/Scanner.java index 73c53ccb1f..92aba4ea8f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/Scanner.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/Scanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception.StorageException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/SizeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/SizeUtils.java index 6a10898eb3..9061868a0c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/SizeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/util/iterator/SizeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.iterator; import java.util.HashMap; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/Manager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/Manager.java index e67fb1b11e..ddc96a4118 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/Manager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/Manager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/AggregatedRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/AggregatedRowStream.java index 3dff897ece..9161da9505 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/AggregatedRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/AggregatedRowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataManager.java index 8233a11066..62a4a6262f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataManager.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataViewWrapper.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataViewWrapper.java index 571127745f..c61159995d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataViewWrapper.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/DataViewWrapper.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtils.java index 78ad3c7070..e050cc7804 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/LongFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/LongFormat.java index 4ad5dcab6f..6ef22550b8 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/LongFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/LongFormat.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; public class LongFormat implements ObjectFormat { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ObjectFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ObjectFormat.java index b5a8c6775f..7fbd9681f1 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ObjectFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ObjectFormat.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; public interface ObjectFormat { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ParquetReadWriter.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ParquetReadWriter.java index bf7f0325d5..68d778c07a 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ParquetReadWriter.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ParquetReadWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ProjectUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ProjectUtils.java index 2c611116bb..5827cd7de7 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ProjectUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ProjectUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.storage.utils.TagKVUtils; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ScannerRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ScannerRowStream.java index ce43a2c23b..ac036a9198 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ScannerRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/ScannerRowStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SerializeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SerializeUtils.java index 512c563c99..aa1351082f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SerializeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SerializeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SizeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SizeUtils.java index ed7b96b4a7..b5615a2d3e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SizeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/SizeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; public class SizeUtils {} diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/StringFormat.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/StringFormat.java index 1a62d1c058..2bc959c4f9 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/StringFormat.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/StringFormat.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; public class StringFormat implements ObjectFormat { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/TombstoneStorage.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/TombstoneStorage.java index 065dd4fbd2..d262851b3f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/TombstoneStorage.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/TombstoneStorage.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.util.AreaSet; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Column.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Column.java index 9baf3c4d28..0aa00c854e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Column.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Column.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Field.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Field.java index 9488ed634d..4d8090dcc9 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Field.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Field.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Loader.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Loader.java index 2c3365ec34..7c5f503258 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Loader.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Loader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.filesystem.format.parquet.IParquetReader; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java index 1f52254369..a713958288 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/NewQueryRowStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Storer.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Storer.java index 6605f70843..4b1a63a8a2 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Storer.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Storer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.filesystem.format.parquet.IParquetWriter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Table.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Table.java index edb6ef67d6..6fc2bf2adb 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Table.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/dummy/Table.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.dummy; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.Constants; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/RangeUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/RangeUtils.java index 27a7e53e9c..91278d42d6 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/RangeUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/RangeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/TagKVUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/TagKVUtils.java index 63597396a8..28fdc332e1 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/TagKVUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/utils/TagKVUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.utils; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Awaitable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Awaitable.java index 95a8964048..9e1f2d3759 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Awaitable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Awaitable.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CachePool.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CachePool.java index f11224736a..6cedaab4ae 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CachePool.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CachePool.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import com.github.benmanes.caffeine.cache.Cache; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CloseableHolders.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CloseableHolders.java index cc8066db10..22157d6621 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CloseableHolders.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/CloseableHolders.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Constants.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Constants.java index 1992746877..e771b54ba1 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Constants.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Constants.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; public final class Constants { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseable.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseable.java index 2a2e9a31d4..a50856bd31 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseable.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseable.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseables.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseables.java index 8b782e6e65..e136d5927e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseables.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/NoexceptAutoCloseables.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/ParseUtils.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/ParseUtils.java index 0950f577aa..4be15950e5 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/ParseUtils.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/ParseUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import java.time.Duration; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Shared.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Shared.java index dee7b33bfa..84f5b7237b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Shared.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/Shared.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import java.io.Closeable; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/SingleCache.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/SingleCache.java index ddcb181fad..f9bc191f3c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/SingleCache.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/SingleCache.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/StorageProperties.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/StorageProperties.java index a72eca8bac..570bac7d13 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/StorageProperties.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/StorageProperties.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util; import cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.lsm.buffer.chunk.IndexedChunk; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java index 854a2e5467..983a75c3be 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFieldTypes.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFields.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFields.java index 140f7445ce..a53ee75e1d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFields.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowFields.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowTypes.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowTypes.java index 2df18b1013..e574934532 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowTypes.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowTypes.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowVectors.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowVectors.java index 4d5eb18431..f36615f25a 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowVectors.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/arrow/ArrowVectors.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.arrow; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/InvalidFieldNameException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/InvalidFieldNameException.java index c721e6800d..39d5e3cb3d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/InvalidFieldNameException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/InvalidFieldNameException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class InvalidFieldNameException extends SchemaException { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/IsClosedException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/IsClosedException.java index 895c1af3d5..5342762e4d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/IsClosedException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/IsClosedException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class IsClosedException extends RuntimeException { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/NotIntegrityException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/NotIntegrityException.java index f260cc6a79..626706c032 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/NotIntegrityException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/NotIntegrityException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class NotIntegrityException extends StorageRuntimeException { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/SchemaException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/SchemaException.java index 7d923e2471..7f19b1e60f 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/SchemaException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/SchemaException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class SchemaException extends StorageException { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageClosedException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageClosedException.java index 1aefdcb62b..33ab41bda1 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageClosedException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageClosedException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageException.java index 1ea29b730b..56e981aed9 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageRuntimeException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageRuntimeException.java index f11edcfd31..6bc2b25f98 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageRuntimeException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/StorageRuntimeException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalRuntimeException; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TimeoutException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TimeoutException.java index 37c94c4f9f..f69c70f1e4 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TimeoutException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TimeoutException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class TimeoutException extends StorageException { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TypeConflictedException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TypeConflictedException.java index c5ce786081..7d98e7028b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TypeConflictedException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/TypeConflictedException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; public class TypeConflictedException extends SchemaException { diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/UnsupportedFilterException.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/UnsupportedFilterException.java index 6b378a8703..9be58686e4 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/UnsupportedFilterException.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/exception/UnsupportedFilterException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.exception; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/DedupIterator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/DedupIterator.java index 3422534e8b..a1f9cf718e 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/DedupIterator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/DedupIterator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/StableMergeIterator.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/StableMergeIterator.java index 0ebf0cdc6a..02d8aa6476 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/StableMergeIterator.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/util/iterator/StableMergeIterator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.util.iterator; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTree.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTree.java index 8dbc2bad30..17526531d0 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTree.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTree.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfig.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfig.java index f28bc92ad6..46b57db003 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfig.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfig.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeManager.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeManager.java index 5be9dc9845..5c1ed83205 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeManager.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/AbstractQuerier.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/AbstractQuerier.java index 89abcfd4b6..b64de1b11c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/AbstractQuerier.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/AbstractQuerier.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Querier.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Querier.java index 56b2199f5e..bfa4188c6c 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Querier.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Querier.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Queriers.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Queriers.java index 756328ea39..0e1cd635b8 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Queriers.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/Queriers.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerier.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerier.java index 64729c4dfc..ac094d9b8a 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerier.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerier.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilder.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilder.java index 029288a880..cad4c6963d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilder.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilder.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilderFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilderFactory.java index 40002e19da..b2489f552d 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilderFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/FormatQuerierBuilderFactory.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerier.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerier.java index ffd8a3792e..6912389e63 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerier.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerier.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java index b37aa5d715..0b04ee0553 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilder.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java index e44c260184..6559bd023b 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionDirectoryQuerierBuilderFactory.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionFormatTree.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionFormatTree.java index a05d44b85a..c5b01f26ce 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionFormatTree.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/query/ftj/UnionFormatTree.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree.query.ftj; diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/units/UnitsMerger.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/units/UnitsMerger.java index cfe6a06d63..a2df8a0bca 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/units/UnitsMerger.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/struct/units/UnitsMerger.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.units; diff --git a/dataSource/filesystem/src/main/thrift/core.thrift b/dataSource/filesystem/src/main/thrift/core.thrift index d966304129..2956d9b87e 100644 --- a/dataSource/filesystem/src/main/thrift/core.thrift +++ b/dataSource/filesystem/src/main/thrift/core.thrift @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - include "rpc.thrift" namespace java cn.edu.tsinghua.iginx.thrift diff --git a/dataSource/filesystem/src/main/thrift/filesystem.thrift b/dataSource/filesystem/src/main/thrift/filesystem.thrift index b84a09457e..7b4a45ab98 100644 --- a/dataSource/filesystem/src/main/thrift/filesystem.thrift +++ b/dataSource/filesystem/src/main/thrift/filesystem.thrift @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - include "rpc.thrift" include "core.thrift" namespace java cn.edu.tsinghua.iginx.filesystem.thrift diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/common/FiltersTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/common/FiltersTest.java index e019691285..0620bce714 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/common/FiltersTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/common/FiltersTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.common; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetTestUtils.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetTestUtils.java index a9e7eed023..9f04c7e0ef 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetTestUtils.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/format/parquet/ParquetTestUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.format.parquet; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/server/ServerTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/server/ServerTest.java index 2eacfc9073..60f3c6d685 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/server/ServerTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/server/ServerTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.server; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/AbstractServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/AbstractServiceTest.java index e4b56f127c..462e495103 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/AbstractServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/AbstractServiceTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/AbstractRemoteServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/AbstractRemoteServiceTest.java index 1cbbcc6b50..693a8c5036 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/AbstractRemoteServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/AbstractRemoteServiceTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.remote; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/LegacyParquetRemoteServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/LegacyParquetRemoteServiceTest.java index c2cc28a480..c99fbb9a91 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/LegacyParquetRemoteServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/remote/LegacyParquetRemoteServiceTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.remote; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractDummyTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractDummyTest.java index 659117c3b5..b724021cf1 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractDummyTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractDummyTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractHistoryDataTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractHistoryDataTest.java index a635de4c2a..57d2801004 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractHistoryDataTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractHistoryDataTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractStorageServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractStorageServiceTest.java index 70a7a60f6e..07680efbdd 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractStorageServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/AbstractStorageServiceTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeDummyTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeDummyTest.java index 19f8b9ba30..c1e8ac6a0b 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeDummyTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeDummyTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeParquetDummyTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeParquetDummyTest.java index 91a4d17fef..fc60344bbe 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeParquetDummyTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/FileTreeParquetDummyTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetHistoryDataTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetHistoryDataTest.java index 9a60d2fa3b..413f5e1cc9 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetHistoryDataTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetHistoryDataTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetStorageServiceTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetStorageServiceTest.java index d7d0229517..1bfcf11b12 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetStorageServiceTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/service/storage/LegacyParquetStorageServiceTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.service.storage; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java index f1669ea7e3..196dfdc157 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/db/common/utils/SerializeUtilsTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.db.common.utils; import static org.junit.Assert.*; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/io/ParquetFormatIOTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/io/ParquetFormatIOTest.java index aac208a8f5..0e7d71308d 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/io/ParquetFormatIOTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/io/ParquetFormatIOTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.io; import static org.junit.Assert.assertEquals; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java index 5b63afa9b0..e1f74a418b 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/legacy/parquet/manager/data/FilterRangeUtilsTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.filesystem.struct.legacy.parquet.manager.data; import static org.junit.Assert.*; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfigTest.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfigTest.java index 3a2d283527..621cc703c7 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfigTest.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/struct/tree/FileTreeConfigTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.struct.tree; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataValidator.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataValidator.java index 83c3b7a827..46dd493a4f 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataValidator.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataValidator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.test; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataViewGenerator.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataViewGenerator.java index 24c338fc1b..88d73b12da 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataViewGenerator.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/DataViewGenerator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.test; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/RowsBuilder.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/RowsBuilder.java index 472e604d1c..9b079ad953 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/RowsBuilder.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/RowsBuilder.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.test; diff --git a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/TableBuilder.java b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/TableBuilder.java index 5723ec7949..3ad5a211d9 100644 --- a/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/TableBuilder.java +++ b/dataSource/filesystem/src/test/java/cn/edu/tsinghua/iginx/filesystem/test/TableBuilder.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.filesystem.test; diff --git a/dataSource/influxdb/pom.xml b/dataSource/influxdb/pom.xml index fd132861dd..ba9e7daccf 100644 --- a/dataSource/influxdb/pom.xml +++ b/dataSource/influxdb/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.influxdb; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/exception/InfluxDBException.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/exception/InfluxDBException.java index 7b29d0e133..1fafef3d25 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/exception/InfluxDBException.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/exception/InfluxDBException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.influxdb.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/exception/InfluxDBTaskExecuteFailureException.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/exception/InfluxDBTaskExecuteFailureException.java index 2cc741fff8..b5961b2e01 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/exception/InfluxDBTaskExecuteFailureException.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/exception/InfluxDBTaskExecuteFailureException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.influxdb.exception; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBHistoryQueryRowStream.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBHistoryQueryRowStream.java index 46d5fb6adf..6fc4446ec5 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBHistoryQueryRowStream.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBHistoryQueryRowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.influxdb.query.entity; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBQueryRowStream.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBQueryRowStream.java index c6eeefa5b2..55841ee6a7 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBQueryRowStream.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBQueryRowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.influxdb.query.entity; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBSchema.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBSchema.java index 7dec918481..184974a369 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBSchema.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/query/entity/InfluxDBSchema.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.influxdb.query.entity; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/DataTypeTransformer.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/DataTypeTransformer.java index fe4d60953a..b56809c18a 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/DataTypeTransformer.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/DataTypeTransformer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.influxdb.tools; import static cn.edu.tsinghua.iginx.thrift.DataType.BINARY; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/FilterTransformer.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/FilterTransformer.java index db101ac756..d8c7289b8a 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/FilterTransformer.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/FilterTransformer.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.influxdb.tools; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/SchemaTransformer.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/SchemaTransformer.java index cf652fa953..0af52cf2f0 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/SchemaTransformer.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/SchemaTransformer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.influxdb.tools; import static cn.edu.tsinghua.iginx.influxdb.tools.DataTypeTransformer.fromInfluxDB; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/TagFilterUtils.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/TagFilterUtils.java index d75f35efbe..1b3dd2ba83 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/TagFilterUtils.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/TagFilterUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.influxdb.tools; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.*; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/TimeUtils.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/TimeUtils.java index c1a036ff34..b3b8396b02 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/TimeUtils.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/TimeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.influxdb.tools; import java.time.Instant; diff --git a/dataSource/iotdb12/pom.xml b/dataSource/iotdb12/pom.xml index d471263235..99cdbf94bd 100644 --- a/dataSource/iotdb12/pom.xml +++ b/dataSource/iotdb12/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.iotdb; diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/exception/IoTDBException.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/exception/IoTDBException.java index a838b0fc21..3866fd25fa 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/exception/IoTDBException.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/exception/IoTDBException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.iotdb.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/exception/IoTDBTaskExecuteFailureException.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/exception/IoTDBTaskExecuteFailureException.java index 4bdb056ee5..e570a19481 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/exception/IoTDBTaskExecuteFailureException.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/exception/IoTDBTaskExecuteFailureException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.iotdb.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalTaskExecuteFailureException; diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/query/entity/IoTDBQueryRowStream.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/query/entity/IoTDBQueryRowStream.java index c7427655de..1decfa2baf 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/query/entity/IoTDBQueryRowStream.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/query/entity/IoTDBQueryRowStream.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.iotdb.query.entity; diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/DataTypeTransformer.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/DataTypeTransformer.java index bdf312acda..291127e658 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/DataTypeTransformer.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/DataTypeTransformer.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.iotdb.tools; diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/DataViewWrapper.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/DataViewWrapper.java index 7746f7c039..1f7134f949 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/DataViewWrapper.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/DataViewWrapper.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.iotdb.tools; diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/FilterTransformer.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/FilterTransformer.java index 742962420d..de78c44615 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/FilterTransformer.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/FilterTransformer.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.iotdb.tools; diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/TagKVUtils.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/TagKVUtils.java index 18fa42916a..00d6c705f5 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/TagKVUtils.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/TagKVUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.iotdb.tools; diff --git a/dataSource/mongodb/pom.xml b/dataSource/mongodb/pom.xml index ba3347602c..dd39bb2d16 100644 --- a/dataSource/mongodb/pom.xml +++ b/dataSource/mongodb/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/DummyQuery.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/DummyQuery.java index 938835248b..8316385bbc 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/DummyQuery.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/DummyQuery.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/FilterUtils.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/FilterUtils.java index 0c24841be6..0364477db8 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/FilterUtils.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/FilterUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import static com.mongodb.client.model.Filters.*; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/FindRowStream.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/FindRowStream.java index a9ec690449..2692da6d1a 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/FindRowStream.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/FindRowStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/NameUtils.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/NameUtils.java index 840e07de9e..ca72f1b7ba 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/NameUtils.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/NameUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; class NameUtils { diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/PathTree.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/PathTree.java index 59f8d6747f..4aff77b926 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/PathTree.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/PathTree.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.mongodb.tools.NameUtils; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/QueryRowStream.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/QueryRowStream.java index beeb79c25c..f287ff86cb 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/QueryRowStream.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/QueryRowStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/QueryUtils.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/QueryUtils.java index d6221925e2..91396eaf44 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/QueryUtils.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/QueryUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultColumn.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultColumn.java index c197c94e40..e20b4ed925 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultColumn.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultColumn.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultRow.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultRow.java index 2b231a841e..666e596f9a 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultRow.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultRow.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import static java.util.AbstractMap.SimpleImmutableEntry; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultTable.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultTable.java index 21514ffeeb..0912bf97f9 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultTable.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/ResultTable.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/SampleQuery.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/SampleQuery.java index 21feb5a5e6..1fea48fda7 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/SampleQuery.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/SampleQuery.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/SchemaSample.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/SchemaSample.java index d9da918fd3..b0b7baa504 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/SchemaSample.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/SchemaSample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/TypeUtils.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/TypeUtils.java index 1644289403..7bd30c7e74 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/TypeUtils.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/TypeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.engine.shared.data.Value; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/ColumnQuery.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/ColumnQuery.java index b06a9d6c50..45796bb00c 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/ColumnQuery.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/ColumnQuery.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.entity; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/JoinQuery.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/JoinQuery.java index 5dff770071..5a2746724e 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/JoinQuery.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/JoinQuery.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.entity; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/SourceTable.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/SourceTable.java index 871bc179db..53702a36c2 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/SourceTable.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/entity/SourceTable.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.entity; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/FilterUtils.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/FilterUtils.java index 70283ec8f9..fbf079e3a6 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/FilterUtils.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/FilterUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.tools; import static com.mongodb.client.model.Filters.*; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/NameUtils.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/NameUtils.java index b56b44b2d2..31028a90d1 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/NameUtils.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/NameUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.tools; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.ColumnKey; diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/TypeUtils.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/TypeUtils.java index 7feae6169e..cea3f2f1cd 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/TypeUtils.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/TypeUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.tools; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/mongodb/src/test/java/cn/edu/tsinghua/iginx/mongodb/dummy/TypeUtilsTest.java b/dataSource/mongodb/src/test/java/cn/edu/tsinghua/iginx/mongodb/dummy/TypeUtilsTest.java index 01249ee43c..91c53d0fe9 100644 --- a/dataSource/mongodb/src/test/java/cn/edu/tsinghua/iginx/mongodb/dummy/TypeUtilsTest.java +++ b/dataSource/mongodb/src/test/java/cn/edu/tsinghua/iginx/mongodb/dummy/TypeUtilsTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.mongodb.dummy; import org.bson.*; diff --git a/dataSource/pom.xml b/dataSource/pom.xml index a33542a1c4..6795267a49 100644 --- a/dataSource/pom.xml +++ b/dataSource/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.redis; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/entity/Column.java b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/entity/Column.java index 8edb0d2c7b..0c81737ee6 100644 --- a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/entity/Column.java +++ b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/entity/Column.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.redis.entity; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/entity/RedisQueryRowStream.java b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/entity/RedisQueryRowStream.java index 7cb9789ce5..ff152c5d77 100644 --- a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/entity/RedisQueryRowStream.java +++ b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/entity/RedisQueryRowStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.redis.entity; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataCoder.java b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataCoder.java index 323b20d8df..02eb7129ab 100644 --- a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataCoder.java +++ b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataCoder.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.redis.tools; public class DataCoder { diff --git a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataTransformer.java b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataTransformer.java index 37b3d96274..76ff63ab4f 100644 --- a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataTransformer.java +++ b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataTransformer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.redis.tools; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataViewWrapper.java b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataViewWrapper.java index 30d26730b4..6251cf21ec 100644 --- a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataViewWrapper.java +++ b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/DataViewWrapper.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.redis.tools; import cn.edu.tsinghua.iginx.engine.shared.data.write.BitmapView; diff --git a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/FilterUtils.java b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/FilterUtils.java index 3ad3a615ea..b8ba79597d 100644 --- a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/FilterUtils.java +++ b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/FilterUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.redis.tools; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; diff --git a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/TagKVUtils.java b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/TagKVUtils.java index 9bb2f52977..c7400b59c7 100644 --- a/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/TagKVUtils.java +++ b/dataSource/redis/src/main/java/cn/edu/tsinghua/iginx/redis/tools/TagKVUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.redis.tools; diff --git a/dataSource/relational/pom.xml b/dataSource/relational/pom.xml index 5e1514995c..d6672db9f9 100644 --- a/dataSource/relational/pom.xml +++ b/dataSource/relational/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.relational; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/IDataTypeTransformer.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/IDataTypeTransformer.java index 8a31b66e8e..d1c99a3b7e 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/IDataTypeTransformer.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/IDataTypeTransformer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.datatype.transformer; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/JDBCDataTypeTransformer.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/JDBCDataTypeTransformer.java index e647b8c5af..3861889b81 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/JDBCDataTypeTransformer.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/JDBCDataTypeTransformer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.datatype.transformer; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/PostgreSQLDataTypeTransformer.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/PostgreSQLDataTypeTransformer.java index dde7c4e4e0..1ee2d34ab9 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/PostgreSQLDataTypeTransformer.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/datatype/transformer/PostgreSQLDataTypeTransformer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.datatype.transformer; import static cn.edu.tsinghua.iginx.thrift.DataType.*; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/exception/RelationalException.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/exception/RelationalException.java index 92a0f3ea93..01b78fad11 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/exception/RelationalException.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/exception/RelationalException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/exception/RelationalTaskExecuteFailureException.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/exception/RelationalTaskExecuteFailureException.java index d6bb3c297c..383f9f73d4 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/exception/RelationalTaskExecuteFailureException.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/exception/RelationalTaskExecuteFailureException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.exception; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalTaskExecuteFailureException; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/AbstractRelationalMeta.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/AbstractRelationalMeta.java index 02faaf5985..ebeee8e1b7 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/AbstractRelationalMeta.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/AbstractRelationalMeta.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.meta; import static cn.edu.tsinghua.iginx.relational.tools.Constants.KEY_NAME; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/JDBCMeta.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/JDBCMeta.java index 98cbf63109..0fa7bb89ab 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/JDBCMeta.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/meta/JDBCMeta.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.meta; import cn.edu.tsinghua.iginx.metadata.entity.StorageEngineMeta; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/query/entity/RelationQueryRowStream.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/query/entity/RelationQueryRowStream.java index bd9345551e..0c7f45aeea 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/query/entity/RelationQueryRowStream.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/query/entity/RelationQueryRowStream.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.query.entity; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.SEPARATOR; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/ColumnField.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/ColumnField.java index fae79399fe..4df3cb1405 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/ColumnField.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/ColumnField.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.tools; public class ColumnField { diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/Constants.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/Constants.java index 2147af59c0..65d7af1fa1 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/Constants.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/Constants.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.tools; import java.util.HashMap; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/FilterTransformer.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/FilterTransformer.java index faca4add57..6e03e5e768 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/FilterTransformer.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/FilterTransformer.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.relational.tools; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/HashUtils.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/HashUtils.java index 4c549f5ee4..fcea3db472 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/HashUtils.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/HashUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.tools; public class HashUtils { diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/RelationSchema.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/RelationSchema.java index 5bc755d668..706c9ed73c 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/RelationSchema.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/RelationSchema.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.tools; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.SEPARATOR; diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/TagKVUtils.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/TagKVUtils.java index 8f6c0b318d..166f1ef28b 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/TagKVUtils.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/TagKVUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.relational.tools; import static cn.edu.tsinghua.iginx.relational.tools.Constants.*; diff --git a/dataSource/relational/src/main/resources/mysql-meta-template.properties b/dataSource/relational/src/main/resources/mysql-meta-template.properties index b944d01d05..f7b84a6ee2 100644 --- a/dataSource/relational/src/main/resources/mysql-meta-template.properties +++ b/dataSource/relational/src/main/resources/mysql-meta-template.properties @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # 配置MySQL META以供JDBCMeta读取 diff --git a/dataSource/relational/src/main/resources/oceanbase-meta.properties b/dataSource/relational/src/main/resources/oceanbase-meta.properties index a6ff6a09e5..a3bd248b44 100644 --- a/dataSource/relational/src/main/resources/oceanbase-meta.properties +++ b/dataSource/relational/src/main/resources/oceanbase-meta.properties @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # 配置MySQL META以供JDBCMeta读取 diff --git a/dataSource/relational/src/main/resources/postgresql-meta-template.properties b/dataSource/relational/src/main/resources/postgresql-meta-template.properties index f0f50189d1..d14c7647a4 100644 --- a/dataSource/relational/src/main/resources/postgresql-meta-template.properties +++ b/dataSource/relational/src/main/resources/postgresql-meta-template.properties @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # 配置Postgresql META以供JDBCMeta读取 diff --git a/dependency/pom.xml b/dependency/pom.xml index 930901c80f..4545d67a51 100644 --- a/dependency/pom.xml +++ b/dependency/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # FROM maven:3-amazoncorretto-8 AS builder diff --git a/docker/client/build-no-maven.bat b/docker/client/build-no-maven.bat index e4145ae956..b343fddac5 100644 --- a/docker/client/build-no-maven.bat +++ b/docker/client/build-no-maven.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM docker build --file Dockerfile-no-maven-windows -t iginx-client:0.8.0-SNAPSHOT ../../client \ No newline at end of file diff --git a/docker/client/build-no-maven.sh b/docker/client/build-no-maven.sh index 225f402534..841ad14e85 100644 --- a/docker/client/build-no-maven.sh +++ b/docker/client/build-no-maven.sh @@ -2,19 +2,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + docker build --file Dockerfile-no-maven -t iginx-client:0.8.0-SNAPSHOT ../../client \ No newline at end of file diff --git a/docker/client/build.bat b/docker/client/build.bat index 8952efafba..5dc2f08457 100644 --- a/docker/client/build.bat +++ b/docker/client/build.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM docker build --file Dockerfile -t iginx-client:0.8.0-SNAPSHOT ../../client \ No newline at end of file diff --git a/docker/client/build.sh b/docker/client/build.sh index 13c3e887fb..c1c1c4788f 100644 --- a/docker/client/build.sh +++ b/docker/client/build.sh @@ -2,19 +2,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + docker build --file Dockerfile -t iginx-client:0.8.0-SNAPSHOT ../../client \ No newline at end of file diff --git a/docker/client/run_docker.bat b/docker/client/run_docker.bat index b020f9ca38..1bfaad01cb 100644 --- a/docker/client/run_docker.bat +++ b/docker/client/run_docker.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM @echo off diff --git a/docker/client/run_docker.sh b/docker/client/run_docker.sh index 7d54fef2e4..a98edb259d 100644 --- a/docker/client/run_docker.sh +++ b/docker/client/run_docker.sh @@ -2,21 +2,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + datadir="$(pwd)/data" name="iginx-client" diff --git a/docker/oneShot-filestore/Dockerfile b/docker/oneShot-filestore/Dockerfile index e077c1f311..78f4711291 100644 --- a/docker/oneShot-filestore/Dockerfile +++ b/docker/oneShot-filestore/Dockerfile @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # FROM maven:3-amazoncorretto-8 AS builder diff --git a/docker/oneShot-filestore/build_and_run_iginx_docker.bat b/docker/oneShot-filestore/build_and_run_iginx_docker.bat index ff90426f1f..8cb2855af2 100644 --- a/docker/oneShot-filestore/build_and_run_iginx_docker.bat +++ b/docker/oneShot-filestore/build_and_run_iginx_docker.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM docker compose up --build --detach \ No newline at end of file diff --git a/docker/oneShot-filestore/build_and_run_iginx_docker.sh b/docker/oneShot-filestore/build_and_run_iginx_docker.sh index 544c1868d6..5d35804deb 100644 --- a/docker/oneShot-filestore/build_and_run_iginx_docker.sh +++ b/docker/oneShot-filestore/build_and_run_iginx_docker.sh @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # docker compose up --build --detach \ No newline at end of file diff --git a/docker/oneShot-filestore/docker-compose.yaml b/docker/oneShot-filestore/docker-compose.yaml index e2e7ee5e4d..841455be48 100644 --- a/docker/oneShot-filestore/docker-compose.yaml +++ b/docker/oneShot-filestore/docker-compose.yaml @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # --- diff --git a/docker/oneShot/Dockerfile b/docker/oneShot/Dockerfile index 7b2e7da1ba..4aee2ffb21 100644 --- a/docker/oneShot/Dockerfile +++ b/docker/oneShot/Dockerfile @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # FROM maven:3-amazoncorretto-8 AS builder diff --git a/docker/oneShot/build_and_run_iginx_docker.bat b/docker/oneShot/build_and_run_iginx_docker.bat index ff90426f1f..8cb2855af2 100644 --- a/docker/oneShot/build_and_run_iginx_docker.bat +++ b/docker/oneShot/build_and_run_iginx_docker.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM docker compose up --build --detach \ No newline at end of file diff --git a/docker/oneShot/build_and_run_iginx_docker.sh b/docker/oneShot/build_and_run_iginx_docker.sh index 544c1868d6..5d35804deb 100755 --- a/docker/oneShot/build_and_run_iginx_docker.sh +++ b/docker/oneShot/build_and_run_iginx_docker.sh @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # docker compose up --build --detach \ No newline at end of file diff --git a/docker/oneShot/docker-compose.yaml b/docker/oneShot/docker-compose.yaml index 5ad1d772ad..c7abbfc7d9 100644 --- a/docker/oneShot/docker-compose.yaml +++ b/docker/oneShot/docker-compose.yaml @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # --- diff --git a/docker/onlyIginx-filestore/build_iginx_docker.bat b/docker/onlyIginx-filestore/build_iginx_docker.bat index a7724a13e5..75c1fd639a 100644 --- a/docker/onlyIginx-filestore/build_iginx_docker.bat +++ b/docker/onlyIginx-filestore/build_iginx_docker.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM docker build --file Dockerfile-iginx -t iginx:0.8.0-SNAPSHOT ../.. \ No newline at end of file diff --git a/docker/onlyIginx-filestore/build_iginx_docker.sh b/docker/onlyIginx-filestore/build_iginx_docker.sh index 05949b3840..7a1921b0cc 100644 --- a/docker/onlyIginx-filestore/build_iginx_docker.sh +++ b/docker/onlyIginx-filestore/build_iginx_docker.sh @@ -2,19 +2,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + docker build --file Dockerfile-iginx -t iginx:0.8.0-SNAPSHOT ../.. \ No newline at end of file diff --git a/docker/onlyIginx-filestore/run_iginx_docker.bat b/docker/onlyIginx-filestore/run_iginx_docker.bat index ae993b795c..680def313c 100644 --- a/docker/onlyIginx-filestore/run_iginx_docker.bat +++ b/docker/onlyIginx-filestore/run_iginx_docker.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM @echo off diff --git a/docker/onlyIginx-filestore/run_iginx_docker.sh b/docker/onlyIginx-filestore/run_iginx_docker.sh index 627228d8f6..0e7f3820f3 100644 --- a/docker/onlyIginx-filestore/run_iginx_docker.sh +++ b/docker/onlyIginx-filestore/run_iginx_docker.sh @@ -2,21 +2,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + # workdir: $IGINX_HOME/docker/onlyiginx-parquet # work descripition: diff --git a/docker/onlyIginx/build_iginx_docker.bat b/docker/onlyIginx/build_iginx_docker.bat index a7724a13e5..75c1fd639a 100644 --- a/docker/onlyIginx/build_iginx_docker.bat +++ b/docker/onlyIginx/build_iginx_docker.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM docker build --file Dockerfile-iginx -t iginx:0.8.0-SNAPSHOT ../.. \ No newline at end of file diff --git a/docker/onlyIginx/build_iginx_docker.sh b/docker/onlyIginx/build_iginx_docker.sh index 3dbd72181e..c76f60bfc9 100755 --- a/docker/onlyIginx/build_iginx_docker.sh +++ b/docker/onlyIginx/build_iginx_docker.sh @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # docker build --file Dockerfile-iginx -t iginx:0.8.0-SNAPSHOT ../.. \ No newline at end of file diff --git a/docker/onlyIginx/run_iginx_docker.bat b/docker/onlyIginx/run_iginx_docker.bat index 183ab516a0..4325a335c4 100644 --- a/docker/onlyIginx/run_iginx_docker.bat +++ b/docker/onlyIginx/run_iginx_docker.bat @@ -1,19 +1,21 @@ @REM @REM IGinX - the polystore system with high performance @REM Copyright (C) Tsinghua University +@REM TSIGinX@gmail.com @REM -@REM This program is free software: you can redistribute it and/or modify -@REM it under the terms of the GNU General Public License as published by -@REM the Free Software Foundation, either version 3 of the License, or -@REM (at your option) any later version. +@REM This program is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 3 of the License, or (at your option) any later version. @REM @REM This program is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of -@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -@REM GNU General Public License for more details. +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. @REM -@REM You should have received a copy of the GNU General Public License -@REM along with this program. If not, see . +@REM You should have received a copy of the GNU Lesser General Public License +@REM along with this program; if not, write to the Free Software Foundation, +@REM Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @REM @echo off diff --git a/docker/onlyIginx/run_iginx_docker.sh b/docker/onlyIginx/run_iginx_docker.sh index 2c689d0688..78daa42c03 100755 --- a/docker/onlyIginx/run_iginx_docker.sh +++ b/docker/onlyIginx/run_iginx_docker.sh @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # ip=$1 diff --git a/example/pom.xml b/example/pom.xml index a3342c7f33..a38c76bbfe 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/InfluxDBSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/InfluxDBSessionExample.java index c94b77b068..60bc981f67 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/InfluxDBSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/InfluxDBSessionExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBAfterDilatationExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBAfterDilatationExample.java index 96e45ddaa6..aa50d7a515 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBAfterDilatationExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBAfterDilatationExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBBeforeDilatationExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBBeforeDilatationExample.java index 48b6755e19..d3d290818f 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBBeforeDilatationExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBBeforeDilatationExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionExample.java index 832e37cf0b..f633516fbb 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionPoolExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionPoolExample.java index 0cb10d224f..bf62fdb7f8 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionPoolExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/IoTDBSessionPoolExample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionExample.java index d49d83d56b..633b500db6 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionNotSupportedQueryExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionNotSupportedQueryExample.java index 0031467e13..3a99a89558 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionNotSupportedQueryExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionNotSupportedQueryExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionNotSupportedWriteExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionNotSupportedWriteExample.java index a5d7939b14..e34aca4d41 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionNotSupportedWriteExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/NewSessionNotSupportedWriteExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/OpenTSDBSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/OpenTSDBSessionExample.java index c24f7f1ca1..12c32cc4be 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/OpenTSDBSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/OpenTSDBSessionExample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetServerExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetServerExample.java index 63a066c6c8..a6ab45ce55 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetServerExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetServerExample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetSessionExample.java index 60ccda6bbe..45b125b4b1 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/ParquetSessionExample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/PostgreSQLSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/PostgreSQLSessionExample.java index 058842ffce..d952a31c0b 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/PostgreSQLSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/PostgreSQLSessionExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/SQLSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/SQLSessionExample.java index 396204fce7..eb3c1c1ce4 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/SQLSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/SQLSessionExample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/TagKVSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/TagKVSessionExample.java index 3a56d64d6c..551c1d6b98 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/TagKVSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/TagKVSessionExample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/TimescaleDBSessionExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/TimescaleDBSessionExample.java index 6e119cbfc0..5fe17dd0ad 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/TimescaleDBSessionExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/TimescaleDBSessionExample.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/TransformCompare.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/TransformCompare.java index 6b5fa3ca32..d5055661d5 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/TransformCompare.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/TransformCompare.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/TransformExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/TransformExample.java index e40f0ac9eb..89fb82d0b2 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/TransformExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/TransformExample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/UDFCompareToSys.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/UDFCompareToSys.java index c5e480fe40..ddee47015f 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/UDFCompareToSys.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/UDFCompareToSys.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/java/cn/edu/tsinghua/iginx/session/UDFExample.java b/example/src/main/java/cn/edu/tsinghua/iginx/session/UDFExample.java index 7c5f1b5515..e97b4ed9e2 100644 --- a/example/src/main/java/cn/edu/tsinghua/iginx/session/UDFExample.java +++ b/example/src/main/java/cn/edu/tsinghua/iginx/session/UDFExample.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/example/src/main/resources/TransformJobExample.yaml b/example/src/main/resources/TransformJobExample.yaml index acd1abb010..db06c9da22 100644 --- a/example/src/main/resources/TransformJobExample.yaml +++ b/example/src/main/resources/TransformJobExample.yaml @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # --- diff --git a/example/src/main/resources/transformer_add_one.py b/example/src/main/resources/transformer_add_one.py index 4fe45d624a..d3c5aaf8ca 100644 --- a/example/src/main/resources/transformer_add_one.py +++ b/example/src/main/resources/transformer_add_one.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import pandas as pd diff --git a/example/src/main/resources/transformer_avg.py b/example/src/main/resources/transformer_avg.py index 90e78e8f8b..0daf419ca3 100644 --- a/example/src/main/resources/transformer_avg.py +++ b/example/src/main/resources/transformer_avg.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import pandas as pd diff --git a/example/src/main/resources/transformer_count.py b/example/src/main/resources/transformer_count.py index 259d6ef1da..351ee07d1f 100644 --- a/example/src/main/resources/transformer_count.py +++ b/example/src/main/resources/transformer_count.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import pandas as pd diff --git a/example/src/main/resources/transformer_max.py b/example/src/main/resources/transformer_max.py index 5ad89df329..8a10c6f359 100644 --- a/example/src/main/resources/transformer_max.py +++ b/example/src/main/resources/transformer_max.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import pandas as pd diff --git a/example/src/main/resources/transformer_min.py b/example/src/main/resources/transformer_min.py index 8e886ba5a3..20f3b282e7 100644 --- a/example/src/main/resources/transformer_min.py +++ b/example/src/main/resources/transformer_min.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import pandas as pd diff --git a/example/src/main/resources/transformer_row_sum.py b/example/src/main/resources/transformer_row_sum.py index 0f38eabba1..cc3399ee26 100644 --- a/example/src/main/resources/transformer_row_sum.py +++ b/example/src/main/resources/transformer_row_sum.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import pandas as pd import numpy as np diff --git a/example/src/main/resources/transformer_sum.py b/example/src/main/resources/transformer_sum.py index e4ef01dd18..6e5eb25f7e 100644 --- a/example/src/main/resources/transformer_sum.py +++ b/example/src/main/resources/transformer_sum.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import pandas as pd diff --git a/example/src/main/resources/udaf_count.py b/example/src/main/resources/udaf_count.py index 623278fe94..22b5cf9ee8 100644 --- a/example/src/main/resources/udaf_count.py +++ b/example/src/main/resources/udaf_count.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFCount: def __init__(self): pass diff --git a/example/src/main/resources/udtf_sin.py b/example/src/main/resources/udtf_sin.py index 51cf539c44..0dd7bce76d 100644 --- a/example/src/main/resources/udtf_sin.py +++ b/example/src/main/resources/udtf_sin.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import math diff --git a/jdbc/pom.xml b/jdbc/pom.xml index 6c8776db88..fe15a4417d 100644 --- a/jdbc/pom.xml +++ b/jdbc/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; public class Config { diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/Constant.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/Constant.java index e307079037..1ec8f7426b 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/Constant.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/Constant.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; public class Constant { diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXConnection.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXConnection.java index e5bf0bf5bd..1424f86943 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXConnection.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXConnection.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXConnectionParams.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXConnectionParams.java index 3d8e036c06..df45513ebd 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXConnectionParams.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXConnectionParams.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; public class IginXConnectionParams { diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDataSource.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDataSource.java index 82c8fc47e0..92625f67a0 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDataSource.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDataSource.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDatabaseMetadata.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDatabaseMetadata.java index 2f98301fe1..05ffb5b318 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDatabaseMetadata.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDatabaseMetadata.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import cn.edu.tsinghua.iginx.session.Session; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDriver.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDriver.java index 5b60685ab6..23eb9ef38a 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDriver.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXDriver.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import java.sql.*; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXPreparedStatement.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXPreparedStatement.java index 11df856441..57e8b17be0 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXPreparedStatement.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXPreparedStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import cn.edu.tsinghua.iginx.session.Session; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXResultMetadata.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXResultMetadata.java index 19cb84b0c4..d58218d154 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXResultMetadata.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXResultMetadata.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXResultSet.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXResultSet.java index 0d947d1e0c..cf1c70c936 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXResultSet.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXResultSet.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import cn.edu.tsinghua.iginx.constant.GlobalConstant; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXStatement.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXStatement.java index 0252120ab2..b855d77a52 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXStatement.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginXStatement.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginxUrlException.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginxUrlException.java index 26321f3d27..2640221949 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginxUrlException.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/IginxUrlException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import java.sql.SQLException; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/Utils.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/Utils.java index f64653c850..36dc194ef7 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/Utils.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/Utils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.jdbc; import java.sql.Date; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxConnection.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxConnection.java index f8af9f9930..9cc3aa4349 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxConnection.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxConnection.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.jdbc.tsdb; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxDriver.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxDriver.java index 9ddcd143bd..2c0d16eb37 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxDriver.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxDriver.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.jdbc.tsdb; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxPreparedStatement.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxPreparedStatement.java index e6fc40b8f1..e869012a38 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxPreparedStatement.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxPreparedStatement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.jdbc.tsdb; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultMetadata.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultMetadata.java index 12d024d19a..3c9f019d9a 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultMetadata.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultMetadata.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.jdbc.tsdb; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultSet.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultSet.java index ee0f10b4fc..45bdff9524 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultSet.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxResultSet.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.jdbc.tsdb; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxStatement.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxStatement.java index 826081b23c..70da96fa6a 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxStatement.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/IginxStatement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.jdbc.tsdb; diff --git a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/util/AuthorityInfo.java b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/util/AuthorityInfo.java index 5a614fc4bc..6ec854b6d0 100644 --- a/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/util/AuthorityInfo.java +++ b/jdbc/src/main/java/cn/edu/tsinghua/iginx/jdbc/tsdb/util/AuthorityInfo.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.jdbc.tsdb.util; diff --git a/jdbc/src/test/java/BatchTest.java b/jdbc/src/test/java/BatchTest.java index a967a66fb6..da42681494 100644 --- a/jdbc/src/test/java/BatchTest.java +++ b/jdbc/src/test/java/BatchTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - import cn.edu.tsinghua.iginx.jdbc.IginXStatement; import java.sql.SQLException; import java.util.ArrayList; diff --git a/jdbc/src/test/java/ConnectionParamsTest.java b/jdbc/src/test/java/ConnectionParamsTest.java index fb898160fa..61090a58bd 100644 --- a/jdbc/src/test/java/ConnectionParamsTest.java +++ b/jdbc/src/test/java/ConnectionParamsTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - import static org.junit.Assert.assertEquals; import cn.edu.tsinghua.iginx.jdbc.Config; diff --git a/jdbc/src/test/java/ExampleTest.java b/jdbc/src/test/java/ExampleTest.java index 801ce32737..05ff55b36f 100644 --- a/jdbc/src/test/java/ExampleTest.java +++ b/jdbc/src/test/java/ExampleTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - import cn.edu.tsinghua.iginx.jdbc.IginXPreparedStatement; import java.sql.*; import org.apache.commons.lang3.RandomStringUtils; diff --git a/jdbc/src/test/java/PreparedStatementTest.java b/jdbc/src/test/java/PreparedStatementTest.java index f2bb27cb5f..bcc84ca656 100644 --- a/jdbc/src/test/java/PreparedStatementTest.java +++ b/jdbc/src/test/java/PreparedStatementTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - import cn.edu.tsinghua.iginx.jdbc.IginXPreparedStatement; import java.sql.SQLException; import org.junit.Assert; diff --git a/jdbc/src/test/java/ResultMetadataTest.java b/jdbc/src/test/java/ResultMetadataTest.java index c2daabe903..0de2f4f560 100644 --- a/jdbc/src/test/java/ResultMetadataTest.java +++ b/jdbc/src/test/java/ResultMetadataTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; diff --git a/jdbc/src/test/java/ResultSetTest.java b/jdbc/src/test/java/ResultSetTest.java index 70b052602d..9440d6c52a 100644 --- a/jdbc/src/test/java/ResultSetTest.java +++ b/jdbc/src/test/java/ResultSetTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - import cn.edu.tsinghua.iginx.constant.GlobalConstant; import java.sql.ResultSet; import java.sql.SQLException; diff --git a/jdbc/src/test/java/TSDBClientIT.java b/jdbc/src/test/java/TSDBClientIT.java index 47cbe39f01..eef5423123 100644 --- a/jdbc/src/test/java/TSDBClientIT.java +++ b/jdbc/src/test/java/TSDBClientIT.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import cn.edu.tsinghua.iginx.exception.SessionException; import cn.edu.tsinghua.iginx.jdbc.tsdb.IginxConnection; diff --git a/jdbc/src/test/java/TestUtils.java b/jdbc/src/test/java/TestUtils.java index 74f29b727a..a9dda6236f 100644 --- a/jdbc/src/test/java/TestUtils.java +++ b/jdbc/src/test/java/TestUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - import cn.edu.tsinghua.iginx.jdbc.IginXResultSet; import cn.edu.tsinghua.iginx.session.SessionExecuteSqlResult; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/optimizer/pom.xml b/optimizer/pom.xml index e604d642cf..f3c7be36e6 100644 --- a/optimizer/pom.xml +++ b/optimizer/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer; import cn.edu.tsinghua.iginx.engine.logical.optimizer.Optimizer; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/FilterPushDownOptimizer.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/FilterPushDownOptimizer.java index a87823fc87..b6badc5820 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/FilterPushDownOptimizer.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/FilterPushDownOptimizer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer; import cn.edu.tsinghua.iginx.engine.logical.optimizer.Optimizer; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/RemoveNotOptimizer.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/RemoveNotOptimizer.java index 5e536fc5db..13ec885f7c 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/RemoveNotOptimizer.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/RemoveNotOptimizer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer; import cn.edu.tsinghua.iginx.engine.logical.optimizer.Optimizer; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/Operand.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/Operand.java index 90fdf6d8e8..b454ca072c 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/Operand.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/Operand.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/Planner.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/Planner.java index 7f17c1065d..55d068f91e 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/Planner.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/Planner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/RuleCall.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/RuleCall.java index bfc882038e..3111d15f33 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/RuleCall.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/RuleCall.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/DeepFirstIterator.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/DeepFirstIterator.java index bb955e4697..2506bb836e 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/DeepFirstIterator.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/DeepFirstIterator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core.iterator; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/LeveledIterator.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/LeveledIterator.java index 4e1cb6cd8f..e9f2e6f0ff 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/LeveledIterator.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/LeveledIterator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core.iterator; import cn.edu.tsinghua.iginx.engine.shared.operator.BinaryOperator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/MatchOrder.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/MatchOrder.java index 2484b42354..965724851d 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/MatchOrder.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/MatchOrder.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core.iterator; public enum MatchOrder { diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/ReverseDeepFirstIterator.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/ReverseDeepFirstIterator.java index f0d2a43855..9f6f7c6666 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/ReverseDeepFirstIterator.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/ReverseDeepFirstIterator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core.iterator; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/ReverseLeveledIterator.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/ReverseLeveledIterator.java index fa107bdab5..a646181aa5 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/ReverseLeveledIterator.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/ReverseLeveledIterator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core.iterator; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/TreeIterator.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/TreeIterator.java index ce43a192b0..a8dbc58824 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/TreeIterator.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/core/iterator/TreeIterator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.core.iterator; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RBORuleCall.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RBORuleCall.java index 89727fa48a..b9c406a7d2 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RBORuleCall.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RBORuleCall.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rbo; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RuleBasedOptimizer.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RuleBasedOptimizer.java index c22f303922..19a9c73b73 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RuleBasedOptimizer.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RuleBasedOptimizer.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rbo; import cn.edu.tsinghua.iginx.engine.logical.optimizer.Optimizer; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RuleBasedPlanner.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RuleBasedPlanner.java index ac700b3753..83742d9a43 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RuleBasedPlanner.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rbo/RuleBasedPlanner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rbo; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java index 0d01fac51c..09f47f7d39 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.OperatorUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ConstantPropagationRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ConstantPropagationRule.java index 26a2afb2b9..9b69311188 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ConstantPropagationRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ConstantPropagationRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterConstantFoldingRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterConstantFoldingRule.java index 9de5f1f110..c51290f8fe 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterConstantFoldingRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterConstantFoldingRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterJoinTransposeRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterJoinTransposeRule.java index b6fde4e1ee..bc74c82802 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterJoinTransposeRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterJoinTransposeRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.shared.operator.AbstractJoin; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java index baf1e6f60c..0754db3cd2 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.shared.expr.*; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownGroupByRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownGroupByRule.java index f30df3158b..3d5b8585e0 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownGroupByRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownGroupByRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java index 63b2fe4577..7fc991a486 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownProjectReorderSortRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownProjectReorderSortRule.java index 10d8ab473e..cef379d51e 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownProjectReorderSortRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownProjectReorderSortRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.shared.operator.*; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java index 85b0398536..8092e1decc 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.PathUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSelectRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSelectRule.java index 8c59575ee2..8bbeabf2b8 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSelectRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSelectRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java index 80f0e62abb..808b6a49a6 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.shared.Constants; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java index a5768b65f7..78e0b03aff 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushIntoJoinConditionRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushIntoJoinConditionRule.java index 910d243b21..1b7c677a80 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushIntoJoinConditionRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushIntoJoinConditionRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushOutJoinConditionRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushOutJoinConditionRule.java index f5b62f79c5..e71a57e7ea 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushOutJoinConditionRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushOutJoinConditionRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByFilterRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByFilterRule.java index b56681fa38..b513cff7f6 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByFilterRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByFilterRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByPatternRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByPatternRule.java index ed428242ce..1e89e9e2ba 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByPatternRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByPatternRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.shared.operator.*; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FunctionDistinctEliminateRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FunctionDistinctEliminateRule.java index a5de437d5d..830b05e6f6 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FunctionDistinctEliminateRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FunctionDistinctEliminateRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/InExistsDistinctEliminateRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/InExistsDistinctEliminateRule.java index bf01bb503b..c898ee4589 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/InExistsDistinctEliminateRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/InExistsDistinctEliminateRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.shared.operator.AbstractJoin; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/NotFilterRemoveRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/NotFilterRemoveRule.java index 77033056ea..f048dbdab6 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/NotFilterRemoveRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/NotFilterRemoveRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java index 25b816c4c7..003b9d408e 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/Rule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/Rule.java index 60537677a3..674c83b97a 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/Rule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/Rule.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleCollection.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleCollection.java index 4db5894c94..d14bb00ab0 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleCollection.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleCollection.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; import cn.edu.tsinghua.iginx.conf.Config; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleStrategy.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleStrategy.java index 91bc1cbbd0..99be098ae4 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleStrategy.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleStrategy.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.logical.optimizer.rules; public enum RuleStrategy { diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/SetTransformPushDownPathUnionJoinRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/SetTransformPushDownPathUnionJoinRule.java index 9ecd533477..927d8d8e89 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/SetTransformPushDownPathUnionJoinRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/SetTransformPushDownPathUnionJoinRule.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.logical.optimizer.rules; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveConstraintManager.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveConstraintManager.java index 230e61865d..23adb301a4 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveConstraintManager.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveConstraintManager.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.physical.optimizer.naive; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaivePhysicalOptimizer.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaivePhysicalOptimizer.java index 57569f447c..5109387c85 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaivePhysicalOptimizer.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaivePhysicalOptimizer.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.physical.optimizer.naive; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveReplicaDispatcher.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveReplicaDispatcher.java index 3f0ffa1fe7..54466353f4 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveReplicaDispatcher.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/naive/NaiveReplicaDispatcher.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.physical.optimizer.naive; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/rule/Rule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/rule/Rule.java index e06a64edc1..8b8dbdcb21 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/rule/Rule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/physical/optimizer/rule/Rule.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.physical.optimizer.rule; diff --git a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/IteratorTest.java b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/IteratorTest.java index 04e85b60af..f629996a1d 100644 --- a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/IteratorTest.java +++ b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/IteratorTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.optimizer; import cn.edu.tsinghua.iginx.engine.shared.operator.InnerJoin; diff --git a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/OperandTest.java b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/OperandTest.java index ab4f4bbecb..80fbfff54d 100644 --- a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/OperandTest.java +++ b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/OperandTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.optimizer; import static cn.edu.tsinghua.iginx.logical.optimizer.rules.Rule.any; diff --git a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/RBOTest.java b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/RBOTest.java index b082cfb121..f81a76fca2 100644 --- a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/RBOTest.java +++ b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/RBOTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.optimizer; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/RBOTestUtils.java b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/RBOTestUtils.java index 0fceff9f87..10bb785d32 100644 --- a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/RBOTestUtils.java +++ b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/RBOTestUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.optimizer; import cn.edu.tsinghua.iginx.logical.optimizer.rules.RuleCollection; diff --git a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreeBuilder.java b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreeBuilder.java index 31a444bb16..0660ee3265 100644 --- a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreeBuilder.java +++ b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreeBuilder.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.optimizer; import cn.edu.tsinghua.iginx.engine.shared.Constants; diff --git a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreePrinter.java b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreePrinter.java index 65e0ba5487..b3c98fdc77 100644 --- a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreePrinter.java +++ b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreePrinter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.optimizer; import cn.edu.tsinghua.iginx.engine.shared.operator.Operator; diff --git a/pom.xml b/pom.xml index beb8ff7974..2d742c4558 100644 --- a/pom.xml +++ b/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.exception; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/pool/IginxInfo.java b/session/src/main/java/cn/edu/tsinghua/iginx/pool/IginxInfo.java index d5b004c191..16ee4cea46 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/pool/IginxInfo.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/pool/IginxInfo.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.pool; public class IginxInfo { diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/pool/SessionPool.java b/session/src/main/java/cn/edu/tsinghua/iginx/pool/SessionPool.java index ce2023a4db..9d792b3c64 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/pool/SessionPool.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/pool/SessionPool.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.pool; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.KEY_MAX_VAL; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/ClusterInfo.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/ClusterInfo.java index 55916b1149..2549d78062 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/ClusterInfo.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/ClusterInfo.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/Column.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/Column.java index c1aab542ab..d897b47334 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/Column.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/Column.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/CurveMatchResult.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/CurveMatchResult.java index 077a880b42..f746edab8e 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/CurveMatchResult.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/CurveMatchResult.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; public class CurveMatchResult { diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/Point.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/Point.java index 4e849c7fc0..b4275a09a8 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/Point.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/Point.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/QueryDataSet.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/QueryDataSet.java index 7cd0d6b22c..31e0017a2c 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/QueryDataSet.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/QueryDataSet.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/Session.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/Session.java index b2f94cde63..f8b4313cf4 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/Session.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/Session.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionAggregateQueryDataSet.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionAggregateQueryDataSet.java index 809403ca61..7b57d2cfe6 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionAggregateQueryDataSet.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionAggregateQueryDataSet.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session; import static cn.edu.tsinghua.iginx.utils.ByteUtils.getLongArrayFromByteBuffer; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java index 3a0f8b0e99..9f1c319436 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionQueryDataSet.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionQueryDataSet.java index ee2f281913..650c887407 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionQueryDataSet.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionQueryDataSet.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/Arguments.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/Arguments.java index 28fe266314..5723de447d 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/Arguments.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/Arguments.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/AsyncWriteClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/AsyncWriteClient.java index 91642be2fc..b4335c49e9 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/AsyncWriteClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/AsyncWriteClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/ClusterClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/ClusterClient.java index ddc094902a..65d44d0329 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/ClusterClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/ClusterClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/DeleteClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/DeleteClient.java index 84aa16a53b..6e4c8eabfa 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/DeleteClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/DeleteClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClient.java index d65b479892..a41e2cc139 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClientFactory.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClientFactory.java index f759985a17..7cd8c5d45b 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClientFactory.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClientFactory.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClientOptions.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClientOptions.java index ab83f4b5f0..83cbb76ea6 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClientOptions.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/IginXClientOptions.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/QueryClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/QueryClient.java index 6130983192..bca4409ad1 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/QueryClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/QueryClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/TransformClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/TransformClient.java index 982b5dc81c..041b4f2e0a 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/TransformClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/TransformClient.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session_v2; import cn.edu.tsinghua.iginx.session_v2.domain.Transform; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/UsersClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/UsersClient.java index 9544f25da3..2462257f87 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/UsersClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/UsersClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/WriteClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/WriteClient.java index b89c443206..4205b091f9 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/WriteClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/WriteClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/annotations/Field.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/annotations/Field.java index 1d1d6a429f..4f25d421b3 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/annotations/Field.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/annotations/Field.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.annotations; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/annotations/Measurement.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/annotations/Measurement.java index bce8e68988..f2afc9ae0b 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/annotations/Measurement.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/annotations/Measurement.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.annotations; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/ClusterInfo.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/ClusterInfo.java index a83f31cca0..a87029cb3c 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/ClusterInfo.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/ClusterInfo.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.domain; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Storage.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Storage.java index 4334cb5785..220489ea44 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Storage.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Storage.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.domain; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Task.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Task.java index c21f8726d2..5a382c0b85 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Task.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Task.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session_v2.domain; import cn.edu.tsinghua.iginx.session_v2.Arguments; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Transform.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Transform.java index 662fd8ee49..0f6834654a 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Transform.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/Transform.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session_v2.domain; import cn.edu.tsinghua.iginx.session_v2.Arguments; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/User.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/User.java index 7615e62b28..8375a366da 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/User.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/domain/User.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.domain; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/exception/IginXException.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/exception/IginXException.java index 324c2a7495..2f14d6f6f9 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/exception/IginXException.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/exception/IginXException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.exception; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/AbstractFunctionClient.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/AbstractFunctionClient.java index 941dc977f9..b3600ef7eb 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/AbstractFunctionClient.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/AbstractFunctionClient.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/AsyncWriteClientImpl.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/AsyncWriteClientImpl.java index 9e564d6bc2..297355d1b2 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/AsyncWriteClientImpl.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/AsyncWriteClientImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/ClusterClientImpl.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/ClusterClientImpl.java index ee31303489..ca6ad04c91 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/ClusterClientImpl.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/ClusterClientImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/DeleteClientImpl.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/DeleteClientImpl.java index f74574018c..956ad28a01 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/DeleteClientImpl.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/DeleteClientImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/IginXClientImpl.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/IginXClientImpl.java index b18259a01d..6533477e38 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/IginXClientImpl.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/IginXClientImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/MeasurementMapper.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/MeasurementMapper.java index ee466670a4..e6921e3ec8 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/MeasurementMapper.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/MeasurementMapper.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/MeasurementUtils.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/MeasurementUtils.java index c50fb98cb6..ff1b4d84ba 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/MeasurementUtils.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/MeasurementUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session_v2.internal; import java.util.ArrayList; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/QueryClientImpl.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/QueryClientImpl.java index 284558e342..491b40d84d 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/QueryClientImpl.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/QueryClientImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/ResultMapper.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/ResultMapper.java index 08323ca044..bae835bce5 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/ResultMapper.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/ResultMapper.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/TransformClientImpl.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/TransformClientImpl.java index 892e96928e..d8c018b4ed 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/TransformClientImpl.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/TransformClientImpl.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.session_v2.internal; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/UsersClientImpl.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/UsersClientImpl.java index eed5b062dd..b138d5662f 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/UsersClientImpl.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/UsersClientImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/WriteClientImpl.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/WriteClientImpl.java index fc068a0ebf..74b1d91250 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/WriteClientImpl.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/internal/WriteClientImpl.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.internal; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/AggregateQuery.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/AggregateQuery.java index d87b497f3f..e9f8bea2c3 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/AggregateQuery.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/AggregateQuery.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/DownsampleQuery.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/DownsampleQuery.java index 073d86dbdb..cb499c2362 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/DownsampleQuery.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/DownsampleQuery.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXColumn.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXColumn.java index 86d9e72e3b..359b5a8ffa 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXColumn.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXColumn.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXHeader.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXHeader.java index a1d1a7669f..ff2868d287 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXHeader.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXHeader.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXRecord.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXRecord.java index 8c5cc8c31f..11849060e7 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXRecord.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXRecord.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXTable.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXTable.java index 93106d35a5..b5235fbc3d 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXTable.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/IginXTable.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/LastQuery.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/LastQuery.java index c8d795f377..cc810147bd 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/LastQuery.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/LastQuery.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/Query.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/Query.java index 73daae5208..d3ef7f6630 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/Query.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/Query.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/SimpleQuery.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/SimpleQuery.java index 465e8967ed..05585ea641 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/SimpleQuery.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/query/SimpleQuery.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.query; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Point.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Point.java index d31b5df320..b63b29ce32 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Point.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Point.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.write; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Record.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Record.java index a274877f27..583712aeec 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Record.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Record.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.write; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Table.java b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Table.java index 9993ae0eb9..ff0b3bcfcf 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Table.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session_v2/write/Table.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.session_v2.write; diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/utils/StatusUtils.java b/session/src/main/java/cn/edu/tsinghua/iginx/utils/StatusUtils.java index 788e9c8893..0ef3b03023 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/utils/StatusUtils.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/utils/StatusUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/session/src/test/java/ResultFormatTest.java b/session/src/test/java/ResultFormatTest.java index 218b0b5a62..7969c7aab3 100644 --- a/session/src/test/java/ResultFormatTest.java +++ b/session/src/test/java/ResultFormatTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - import static org.junit.Assert.assertEquals; import cn.edu.tsinghua.iginx.session.SessionExecuteSqlResult; diff --git a/session_py/example.py b/session_py/example.py index 01ca135ecf..9830790700 100644 --- a/session_py/example.py +++ b/session_py/example.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # import pandas as pd diff --git a/session_py/file_example.py b/session_py/file_example.py index b7d6c9ae07..6d7dded747 100644 --- a/session_py/file_example.py +++ b/session_py/file_example.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ A simple example on how to manipulate file with IGinX """ diff --git a/session_py/iginx/iginx_pyclient/__init__.py b/session_py/iginx/iginx_pyclient/__init__.py index e2e715db32..2735f71e66 100644 --- a/session_py/iginx/iginx_pyclient/__init__.py +++ b/session_py/iginx/iginx_pyclient/__init__.py @@ -1,18 +1,20 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # diff --git a/session_py/iginx/iginx_pyclient/cluster_info.py b/session_py/iginx/iginx_pyclient/cluster_info.py index 608769b762..364c521207 100644 --- a/session_py/iginx/iginx_pyclient/cluster_info.py +++ b/session_py/iginx/iginx_pyclient/cluster_info.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # from .thrift.rpc.ttypes import StorageEngineType diff --git a/session_py/iginx/iginx_pyclient/dataset.py b/session_py/iginx/iginx_pyclient/dataset.py index 8b4b949350..1c63649a4c 100644 --- a/session_py/iginx/iginx_pyclient/dataset.py +++ b/session_py/iginx/iginx_pyclient/dataset.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # from enum import Enum diff --git a/session_py/iginx/iginx_pyclient/session.py b/session_py/iginx/iginx_pyclient/session.py index 0b76a9b622..20fb9ece84 100644 --- a/session_py/iginx/iginx_pyclient/session.py +++ b/session_py/iginx/iginx_pyclient/session.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # import csv diff --git a/session_py/iginx/iginx_pyclient/thrift/__init__.py b/session_py/iginx/iginx_pyclient/thrift/__init__.py index e2e715db32..2735f71e66 100644 --- a/session_py/iginx/iginx_pyclient/thrift/__init__.py +++ b/session_py/iginx/iginx_pyclient/thrift/__init__.py @@ -1,18 +1,20 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # diff --git a/session_py/iginx/iginx_pyclient/thrift/rpc/IService.py b/session_py/iginx/iginx_pyclient/thrift/rpc/IService.py index c3f3a4cccc..8b95723de7 100644 --- a/session_py/iginx/iginx_pyclient/thrift/rpc/IService.py +++ b/session_py/iginx/iginx_pyclient/thrift/rpc/IService.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # diff --git a/session_py/iginx/iginx_pyclient/thrift/rpc/__init__.py b/session_py/iginx/iginx_pyclient/thrift/rpc/__init__.py index 323d5c2f12..32ef4ce1be 100644 --- a/session_py/iginx/iginx_pyclient/thrift/rpc/__init__.py +++ b/session_py/iginx/iginx_pyclient/thrift/rpc/__init__.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # __all__ = ['ttypes', 'constants', 'IService'] diff --git a/session_py/iginx/iginx_pyclient/thrift/rpc/constants.py b/session_py/iginx/iginx_pyclient/thrift/rpc/constants.py index db308b8bb8..d0bb88d211 100644 --- a/session_py/iginx/iginx_pyclient/thrift/rpc/constants.py +++ b/session_py/iginx/iginx_pyclient/thrift/rpc/constants.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # diff --git a/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py b/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py index 90a3639d80..4192bf024c 100644 --- a/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py +++ b/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # diff --git a/session_py/iginx/iginx_pyclient/time_series.py b/session_py/iginx/iginx_pyclient/time_series.py index c4d0da32e0..70b16eef00 100644 --- a/session_py/iginx/iginx_pyclient/time_series.py +++ b/session_py/iginx/iginx_pyclient/time_series.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # from .thrift.rpc.ttypes import DataType diff --git a/session_py/iginx/iginx_pyclient/utils/__init__.py b/session_py/iginx/iginx_pyclient/utils/__init__.py index 5740237d34..1dc2573e10 100644 --- a/session_py/iginx/iginx_pyclient/utils/__init__.py +++ b/session_py/iginx/iginx_pyclient/utils/__init__.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # \ No newline at end of file diff --git a/session_py/iginx/iginx_pyclient/utils/bitmap.py b/session_py/iginx/iginx_pyclient/utils/bitmap.py index c8d93106f2..b3967497cd 100644 --- a/session_py/iginx/iginx_pyclient/utils/bitmap.py +++ b/session_py/iginx/iginx_pyclient/utils/bitmap.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # class Bitmap(object): diff --git a/session_py/iginx/iginx_pyclient/utils/byte_utils.py b/session_py/iginx/iginx_pyclient/utils/byte_utils.py index 9f1d79e55d..baf50421bb 100644 --- a/session_py/iginx/iginx_pyclient/utils/byte_utils.py +++ b/session_py/iginx/iginx_pyclient/utils/byte_utils.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # import struct diff --git a/session_py/iginx/setup.py b/session_py/iginx/setup.py index 4bf54b9a33..3be62fb2f3 100644 --- a/session_py/iginx/setup.py +++ b/session_py/iginx/setup.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import io import os import sys diff --git a/session_py/pom.xml b/session_py/pom.xml index 8bedea5ea7..599cec8d90 100644 --- a/session_py/pom.xml +++ b/session_py/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.constant; public class GlobalConstant { diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/IginxRuntimeException.java b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/IginxRuntimeException.java index 10de2baca9..f008769ad3 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/IginxRuntimeException.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/IginxRuntimeException.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - /* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/StatusCode.java b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/StatusCode.java index e5aa81971f..a30c851179 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/StatusCode.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/StatusCode.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.exception; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/UnsupportedDataTypeException.java b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/UnsupportedDataTypeException.java index b850c93e93..c59113b954 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/UnsupportedDataTypeException.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/UnsupportedDataTypeException.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.exception; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/package-info.java b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/package-info.java index 892dd705eb..d8113f7e92 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/exception/package-info.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/exception/package-info.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - /** * IGinX异常处理规范。 * diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Bitmap.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Bitmap.java index 8638cba727..52c1df1710 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Bitmap.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Bitmap.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ByteUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ByteUtils.java index b966d9c35b..343aa4e6c9 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ByteUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ByteUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CSVUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CSVUtils.java index 25636093b3..e5b24935b8 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CSVUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CSVUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import cn.edu.tsinghua.iginx.thrift.ExportCSV; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CheckedFunction.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CheckedFunction.java index 7c59d906cf..38108c4b9d 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CheckedFunction.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CheckedFunction.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CompressionUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CompressionUtils.java index 2edf585817..76df5e4af4 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CompressionUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CompressionUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.io.*; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CurveMatchUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CurveMatchUtils.java index 3ca544db76..0027b1b000 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CurveMatchUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/CurveMatchUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/DataTypeInferenceUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/DataTypeInferenceUtils.java index 07c6662f5a..2388090316 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/DataTypeInferenceUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/DataTypeInferenceUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/DataTypeUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/DataTypeUtils.java index ea0efd44b8..0c4765ef4c 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/DataTypeUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/DataTypeUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/EnvUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/EnvUtils.java index 77214db983..439c0b6b80 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/EnvUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/EnvUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Escaper.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Escaper.java index 6f9c7011a6..5006079815 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Escaper.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Escaper.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.text.ParseException; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileCompareUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileCompareUtils.java index 31a0492d30..ce924e3d7d 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileCompareUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileCompareUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.io.BufferedReader; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileReader.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileReader.java index 4dc17b00bb..1805554c0f 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileReader.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileReader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.io.*; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileUtils.java index 4e7496538c..f9496d45f2 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FileUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.io.File; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FormatUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FormatUtils.java index 4bfef95735..76f5d5faf4 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FormatUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/FormatUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.text.SimpleDateFormat; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/HostUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/HostUtils.java index 31adc88681..308c7780e4 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/HostUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/HostUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.net.Inet4Address; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/JobFromYAML.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/JobFromYAML.java index a2eda0e13b..ac03c1cf72 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/JobFromYAML.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/JobFromYAML.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.util.List; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/JsonUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/JsonUtils.java index 5669ea211b..3626ad8686 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/JsonUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/JsonUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import com.alibaba.fastjson2.JSON; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Pair.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Pair.java index 05158f9982..763ddb5922 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Pair.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/Pair.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/RpcUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/RpcUtils.java index 078fa94303..484dcfe4e0 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/RpcUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/RpcUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SerializeUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SerializeUtils.java index 733cee3ae5..ed716979a2 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SerializeUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SerializeUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ShellRunner.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ShellRunner.java index efd9f5a21c..608bdcc5e4 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ShellRunner.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ShellRunner.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.io.BufferedReader; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SnowFlakeUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SnowFlakeUtils.java index 5f305f2cd9..69cf138561 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SnowFlakeUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SnowFlakeUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SortUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SortUtils.java index d59ecb2fae..a78cb3cd1f 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SortUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/SortUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/StringUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/StringUtils.java index 4321a8ea94..2eae15424c 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/StringUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/StringUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TagKVUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TagKVUtils.java index 86cc795742..dca65455aa 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TagKVUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TagKVUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TaskFromYAML.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TaskFromYAML.java index 5d3bfdf87d..dfeabffc53 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TaskFromYAML.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TaskFromYAML.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.util.List; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ThriftConnPool.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ThriftConnPool.java index 928b1cd703..82bf120b0e 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ThriftConnPool.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ThriftConnPool.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.time.Duration; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TimeUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TimeUtils.java index c15497430b..cbfbb6a5e8 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TimeUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/TimeUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.utils; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ValueUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ValueUtils.java index d57568d19b..849c47a261 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ValueUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ValueUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; public class ValueUtils { diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/YAMLReader.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/YAMLReader.java index bb3cb761a9..145215c5b2 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/YAMLReader.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/YAMLReader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.io.*; diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/YAMLWriter.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/YAMLWriter.java index 35f774c945..655061019b 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/YAMLWriter.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/YAMLWriter.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import java.io.BufferedWriter; diff --git a/shared/src/test/java/cn/edu/tsinghua/iginx/utils/CompressionUtilsTest.java b/shared/src/test/java/cn/edu/tsinghua/iginx/utils/CompressionUtilsTest.java index dcc269ccbc..d10dee5e70 100644 --- a/shared/src/test/java/cn/edu/tsinghua/iginx/utils/CompressionUtilsTest.java +++ b/shared/src/test/java/cn/edu/tsinghua/iginx/utils/CompressionUtilsTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import static org.junit.Assert.fail; diff --git a/shared/src/test/java/cn/edu/tsinghua/iginx/utils/EscaperTest.java b/shared/src/test/java/cn/edu/tsinghua/iginx/utils/EscaperTest.java index 78926dd14c..67f7983eee 100644 --- a/shared/src/test/java/cn/edu/tsinghua/iginx/utils/EscaperTest.java +++ b/shared/src/test/java/cn/edu/tsinghua/iginx/utils/EscaperTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import static org.junit.Assert.*; diff --git a/shared/src/test/java/cn/edu/tsinghua/iginx/utils/StringUtilsTest.java b/shared/src/test/java/cn/edu/tsinghua/iginx/utils/StringUtilsTest.java index 1ac452ae30..e3422a771e 100644 --- a/shared/src/test/java/cn/edu/tsinghua/iginx/utils/StringUtilsTest.java +++ b/shared/src/test/java/cn/edu/tsinghua/iginx/utils/StringUtilsTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.utils; import static org.junit.Assert.assertEquals; diff --git a/test/pom.xml b/test/pom.xml index 845907bc55..9376684fd0 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.shared; import cn.edu.tsinghua.iginx.conf.Constants; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ExportFileIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ExportFileIT.java index 95a93bfad1..f33ae17fb6 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ExportFileIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ExportFileIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.client; import static org.junit.Assert.assertEquals; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ImportFileIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ImportFileIT.java index 2af25690d4..ea4dcbd3cb 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ImportFileIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ImportFileIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.client; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/compaction/CompactionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/compaction/CompactionIT.java index 087faf9ffa..dd0c823488 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/compaction/CompactionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/compaction/CompactionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.compaction; import static org.junit.Assert.assertEquals; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/controller/Controller.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/controller/Controller.java index b85e9770dd..e08596a419 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/controller/Controller.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/controller/Controller.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.controller; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.CLEAR_DUMMY_DATA_CAUTION; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/controller/TestEnvironmentController.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/controller/TestEnvironmentController.java index b1dda6b233..77cf02e194 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/controller/TestEnvironmentController.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/controller/TestEnvironmentController.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.controller; import cn.edu.tsinghua.iginx.metadata.entity.StorageEngineMeta; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/datasource/DataSourceIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/datasource/DataSourceIT.java index 35ea638612..ad0f0c15ab 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/datasource/DataSourceIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/datasource/DataSourceIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.datasource; import static org.junit.Assert.assertNull; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java index 2a08fda402..530718f4dd 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion; import static cn.edu.tsinghua.iginx.integration.controller.Controller.SUPPORT_KEY; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseHistoryDataGenerator.java index a5d483dffe..0654efd881 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseHistoryDataGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion; import static cn.edu.tsinghua.iginx.integration.expansion.constant.Constant.*; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/constant/Constant.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/constant/Constant.java index 701b9859d8..bbb4400034 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/constant/Constant.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/constant/Constant.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.constant; import cn.edu.tsinghua.iginx.integration.controller.Controller; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java index 32d69be362..2932f15356 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemCapacityExpansionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.filesystem; import static cn.edu.tsinghua.iginx.thrift.StorageEngineType.filesystem; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java index 838bb819b5..d7438ef2d8 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/filesystem/FileSystemHistoryDataGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.filesystem; import static cn.edu.tsinghua.iginx.integration.expansion.constant.Constant.IGINX_DATA_PATH_PREFIX_NAME; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBCapacityExpansionIT.java index f509b71fc6..77c752305e 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBCapacityExpansionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.influxdb; import static cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools.executeShellScript; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBHistoryDataGenerator.java index 8498008528..61b4da1d75 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/influxdb/InfluxDBHistoryDataGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.influxdb; import cn.edu.tsinghua.iginx.integration.expansion.BaseHistoryDataGenerator; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12CapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12CapacityExpansionIT.java index 4d005a2d0a..192d42d987 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12CapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12CapacityExpansionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.iotdb; import static cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools.executeShellScript; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12HistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12HistoryDataGenerator.java index caa6a0779b..cc57d85eb6 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12HistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/iotdb/IoTDB12HistoryDataGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.iotdb; import cn.edu.tsinghua.iginx.integration.expansion.BaseHistoryDataGenerator; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java index 73f73b8016..61fb8230c3 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.mongodb; import static cn.edu.tsinghua.iginx.thrift.StorageEngineType.mongodb; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBHistoryDataGenerator.java index 7c764705ad..01ada0bb79 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBHistoryDataGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.mongodb; import static cn.edu.tsinghua.iginx.integration.expansion.constant.Constant.readOnlyPort; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java index 8e80bdc3fe..e660d93e54 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.mysql; import static cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools.executeShellScript; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLHistoryDataGenerator.java index f05b147a2d..3c949ee137 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLHistoryDataGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.mysql; import cn.edu.tsinghua.iginx.integration.expansion.BaseHistoryDataGenerator; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java index 3238edb836..b3fa51f3c8 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.postgresql; import static cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools.executeShellScript; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLHistoryDataGenerator.java index 8c5cc2685a..c0d2cd5f60 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLHistoryDataGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.postgresql; import cn.edu.tsinghua.iginx.integration.expansion.BaseHistoryDataGenerator; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java index 93b5c4c080..224cf90180 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.redis; import static cn.edu.tsinghua.iginx.thrift.StorageEngineType.redis; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisHistoryDataGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisHistoryDataGenerator.java index b80dc2fdd9..1b5c9f68cd 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisHistoryDataGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisHistoryDataGenerator.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.redis; import static cn.edu.tsinghua.iginx.integration.expansion.constant.Constant.readOnlyPort; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/DataViewGenerator.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/DataViewGenerator.java index f860532bc7..e1675e8c5d 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/DataViewGenerator.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/DataViewGenerator.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.expansion.utils; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/SQLTestTools.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/SQLTestTools.java index c421de3683..bddd59d7be 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/SQLTestTools.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/utils/SQLTestTools.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.expansion.utils; import static org.junit.Assert.*; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/auth/UserManagementIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/auth/UserManagementIT.java index 7bfb649e55..9670b6b79a 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/auth/UserManagementIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/auth/UserManagementIT.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.func.auth; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/rest/RestAnnotationIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/rest/RestAnnotationIT.java index d6609829de..ab03175a63 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/rest/RestAnnotationIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/rest/RestAnnotationIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.rest; import static org.junit.Assert.assertEquals; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/rest/RestIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/rest/RestIT.java index 5ad12b0435..03d307079e 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/rest/RestIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/rest/RestIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.rest; import static cn.edu.tsinghua.iginx.integration.controller.Controller.clearAllData; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/BaseSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/BaseSessionIT.java index 337bf2e181..f82dc853fd 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/BaseSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/BaseSessionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; import static org.junit.Assert.fail; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/InsertAPIType.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/InsertAPIType.java index 207ba90857..a48c8f116b 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/InsertAPIType.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/InsertAPIType.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; public enum InsertAPIType { diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/NewSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/NewSessionIT.java index 37ad705d16..b4ddae5254 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/NewSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/NewSessionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; import static cn.edu.tsinghua.iginx.engine.shared.Constants.WINDOW_END_COL; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java index 2fc2d1965e..6cd358a541 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; import static cn.edu.tsinghua.iginx.integration.controller.Controller.clearAllData; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SQLCompareIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SQLCompareIT.java index 98a231f1f8..c949c8bc95 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SQLCompareIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SQLCompareIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; import static org.junit.Assert.assertEquals; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionConcurrencyIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionConcurrencyIT.java index 6e66593d39..401ee08707 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionConcurrencyIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionConcurrencyIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; import static org.junit.Assert.*; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java index 8e8f302ef7..d036319f14 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.func.session; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionPoolIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionPoolIT.java index 5c8b777752..4fcef3f85c 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionPoolIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionPoolIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; import cn.edu.tsinghua.iginx.integration.tool.MultiConnection; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionV2IT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionV2IT.java index e206003c78..2ed990d3ac 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionV2IT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionV2IT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; import static cn.edu.tsinghua.iginx.engine.shared.Constants.WINDOW_END_COL; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/TestDataSection.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/TestDataSection.java index e7ff77187d..f11cc100c6 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/TestDataSection.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/TestDataSection.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.session; import cn.edu.tsinghua.iginx.thrift.DataType; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 7bff1fb74e..243a63b616 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.sql; import static cn.edu.tsinghua.iginx.integration.controller.Controller.SUPPORT_KEY; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionPoolIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionPoolIT.java index 02acf2e09e..6e2aecd715 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionPoolIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionPoolIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.sql; import static cn.edu.tsinghua.iginx.integration.controller.Controller.SUPPORT_KEY; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/tag/TagIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/tag/TagIT.java index 7457b0dbfa..1e18619693 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/tag/TagIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/tag/TagIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.tag; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.CLEAR_DUMMY_DATA_CAUTION; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/RemoteUDFIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/RemoteUDFIT.java index 60539fd249..9d06d2839e 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/RemoteUDFIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/RemoteUDFIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.udf; import static cn.edu.tsinghua.iginx.integration.controller.Controller.clearAllData; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java index a57110adfe..1ef1050ef9 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.func.udf; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java index 3a53f49aed..711f95a3cf 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.func.udf; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java index 3b813e3b01..72d3006eef 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.func.udf; import static org.junit.Assert.assertEquals; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/ETCDSyncProtocolTest.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/ETCDSyncProtocolTest.java index e799d78a63..bce0e8247c 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/ETCDSyncProtocolTest.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/ETCDSyncProtocolTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.mds; import cn.edu.tsinghua.iginx.metadata.sync.protocol.SyncProtocol; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/IMetaManagerTest.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/IMetaManagerTest.java index 03ba693280..8a8c83bb82 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/IMetaManagerTest.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/IMetaManagerTest.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.mds; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/RandomUtils.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/RandomUtils.java index 0d10627071..c06e26ef3e 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/RandomUtils.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/RandomUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.mds; import java.util.Random; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/SyncProtocolTest.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/SyncProtocolTest.java index 408ce61d45..631640aac3 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/SyncProtocolTest.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/SyncProtocolTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.mds; import static org.junit.Assert.*; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/ZooKeeperSyncProtocolTest.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/ZooKeeperSyncProtocolTest.java index 14e2f15cf6..f29a174961 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/ZooKeeperSyncProtocolTest.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/mds/ZooKeeperSyncProtocolTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.mds; import cn.edu.tsinghua.iginx.metadata.sync.protocol.NetworkException; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/FileLoaderTest.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/FileLoaderTest.java index 11fa789805..4b6946381d 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/FileLoaderTest.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/FileLoaderTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.other; import static org.junit.Assert.fail; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/TimePrecisionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/TimePrecisionIT.java index af3a78e240..3b416881a5 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/TimePrecisionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/TimePrecisionIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.other; import static org.junit.Assert.fail; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java index 23de0469b0..6526328c93 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.other; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/regression/MixClusterShowColumnsRegressionTest.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/regression/MixClusterShowColumnsRegressionTest.java index c22d1ff3b4..f14d6fbdad 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/regression/MixClusterShowColumnsRegressionTest.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/regression/MixClusterShowColumnsRegressionTest.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.regression; import static org.junit.Assert.assertEquals; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/CombinedInsertTests.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/CombinedInsertTests.java index 74e5507e39..6c60410253 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/CombinedInsertTests.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/CombinedInsertTests.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.tool; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/ConfLoader.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/ConfLoader.java index b0553a2f6e..cea0114e84 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/ConfLoader.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/ConfLoader.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.tool; import cn.edu.tsinghua.iginx.integration.expansion.constant.Constant; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/DBConf.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/DBConf.java index e1cccbaf10..e168806823 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/DBConf.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/DBConf.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.tool; import java.util.HashMap; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/MultiConnection.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/MultiConnection.java index 631f9fd436..236f44a880 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/MultiConnection.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/MultiConnection.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.tool; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.*; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/SQLExecutor.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/SQLExecutor.java index 256b438748..574aebaa7f 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/SQLExecutor.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/SQLExecutor.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.tool; import static cn.edu.tsinghua.iginx.constant.GlobalConstant.CLEAR_DUMMY_DATA_CAUTION; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TempDummyDataSource.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TempDummyDataSource.java index 3be39e6ae2..e7344679d5 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TempDummyDataSource.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TempDummyDataSource.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.tool; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TestUtils.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TestUtils.java index c6461c54d9..ef7556a475 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TestUtils.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TestUtils.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.tool; import java.io.*; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHDataGeneratorIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHDataGeneratorIT.java index 914fd340bd..b675616227 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHDataGeneratorIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHDataGeneratorIT.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.tpch; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHRegressionMainIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHRegressionMainIT.java index 57b695368c..731d68d068 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHRegressionMainIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHRegressionMainIT.java @@ -1,21 +1,22 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - package cn.edu.tsinghua.iginx.integration.tpch; import cn.edu.tsinghua.iginx.exception.SessionException; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHRegressionNewIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHRegressionNewIT.java index 9c2bc79f13..ecb4de7c4b 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHRegressionNewIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHRegressionNewIT.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.tpch; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java index d22b5a0e9a..73f6f29978 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java @@ -1,19 +1,21 @@ /* * IGinX - the polystore system with high performance * Copyright (C) Tsinghua University + * TSIGinX@gmail.com * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package cn.edu.tsinghua.iginx.integration.tpch; diff --git a/thrift/pom.xml b/thrift/pom.xml index 22fe65726e..422fd7a9dc 100644 --- a/thrift/pom.xml +++ b/thrift/pom.xml @@ -3,19 +3,21 @@ IGinX - the polystore system with high performance Copyright (C) Tsinghua University + TSIGinX@gmail.com - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> . + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ namespace java cn.edu.tsinghua.iginx.thrift namespace py iginx.thrift.rpc diff --git a/udf_funcs/python_scripts/class_loader.py b/udf_funcs/python_scripts/class_loader.py index 98c4891589..4b3f4065ff 100644 --- a/udf_funcs/python_scripts/class_loader.py +++ b/udf_funcs/python_scripts/class_loader.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + from transformer import BaseTransformer diff --git a/udf_funcs/python_scripts/constant.py b/udf_funcs/python_scripts/constant.py index 504ad3c7cf..ed77e575fc 100644 --- a/udf_funcs/python_scripts/constant.py +++ b/udf_funcs/python_scripts/constant.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + from enum import IntEnum diff --git a/udf_funcs/python_scripts/py_worker.py b/udf_funcs/python_scripts/py_worker.py index 0ed6b570db..b8d70c0f56 100644 --- a/udf_funcs/python_scripts/py_worker.py +++ b/udf_funcs/python_scripts/py_worker.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import os import socket import sys diff --git a/udf_funcs/python_scripts/transformer_apply.py b/udf_funcs/python_scripts/transformer_apply.py index 1d46645596..9d6f70fe52 100644 --- a/udf_funcs/python_scripts/transformer_apply.py +++ b/udf_funcs/python_scripts/transformer_apply.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ Apply a function along an axis of the DataFrame. diff --git a/udf_funcs/python_scripts/transformer_between_time.py b/udf_funcs/python_scripts/transformer_between_time.py index 7132d0341a..bacd85b511 100644 --- a/udf_funcs/python_scripts/transformer_between_time.py +++ b/udf_funcs/python_scripts/transformer_between_time.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ Select values between particular times of the day (e.g., 9:00-9:30 AM). """ diff --git a/udf_funcs/python_scripts/transformer_bool.py b/udf_funcs/python_scripts/transformer_bool.py index 8937ee46b2..113d1f3f95 100644 --- a/udf_funcs/python_scripts/transformer_bool.py +++ b/udf_funcs/python_scripts/transformer_bool.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ Return the bool of a single element Series or DataFrame. This must be a boolean scalar value, either True or False. diff --git a/udf_funcs/python_scripts/transformer_bottom.py b/udf_funcs/python_scripts/transformer_bottom.py index f059d2dea6..d82ccde2f7 100644 --- a/udf_funcs/python_scripts/transformer_bottom.py +++ b/udf_funcs/python_scripts/transformer_bottom.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ The bottom() function sorts a table by columns and keeps only the bottom n records. bottom() is a selector function. bottom() 函数按列对表进行排序并仅保留底部的 n 条记录。 bottom() 是一个选择器函数。 diff --git a/udf_funcs/python_scripts/transformer_distinct.py b/udf_funcs/python_scripts/transformer_distinct.py index 668fadae7b..756a5ac0a4 100644 --- a/udf_funcs/python_scripts/transformer_distinct.py +++ b/udf_funcs/python_scripts/transformer_distinct.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ Writing a distinct() function for IginX: Count the distinct field values associated with a field key. diff --git a/udf_funcs/python_scripts/transformer_filter.py b/udf_funcs/python_scripts/transformer_filter.py index 9dfa7be692..9aa482ce4d 100644 --- a/udf_funcs/python_scripts/transformer_filter.py +++ b/udf_funcs/python_scripts/transformer_filter.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ The filter() function is used to subset rows or columns of dataframe according to labels in the specified index. """ diff --git a/udf_funcs/python_scripts/transformer_head.py b/udf_funcs/python_scripts/transformer_head.py index 4a12f09b0b..9ef37daf07 100644 --- a/udf_funcs/python_scripts/transformer_head.py +++ b/udf_funcs/python_scripts/transformer_head.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ Return the first n rows. This function returns the first n rows for the object based on position. diff --git a/udf_funcs/python_scripts/transformer_loc.py b/udf_funcs/python_scripts/transformer_loc.py index 1fd3c720a8..7041380276 100644 --- a/udf_funcs/python_scripts/transformer_loc.py +++ b/udf_funcs/python_scripts/transformer_loc.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ Access a group of rows and columns by label(s) or a boolean array. """ diff --git a/udf_funcs/python_scripts/transformer_mean.py b/udf_funcs/python_scripts/transformer_mean.py index 722d289bac..ed5dff8287 100644 --- a/udf_funcs/python_scripts/transformer_mean.py +++ b/udf_funcs/python_scripts/transformer_mean.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ mean() returns the average of non-null values in a specified column from each input table. Mean function returns the average by dividing the sum of the values in the set by their number. diff --git a/udf_funcs/python_scripts/transformer_skew.py b/udf_funcs/python_scripts/transformer_skew.py index d8813767e0..d93f5a0a66 100644 --- a/udf_funcs/python_scripts/transformer_skew.py +++ b/udf_funcs/python_scripts/transformer_skew.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ Return unbiased skew over requested axis. Normalized by N-1. diff --git a/udf_funcs/python_scripts/transformer_sortindex.py b/udf_funcs/python_scripts/transformer_sortindex.py index 3e50de5c56..a1d7ab6185 100644 --- a/udf_funcs/python_scripts/transformer_sortindex.py +++ b/udf_funcs/python_scripts/transformer_sortindex.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + """ Sorts index in descending order: diff --git a/udf_funcs/python_scripts/transformer_spread.py b/udf_funcs/python_scripts/transformer_spread.py index 3361816d2b..b7c7b19d14 100644 --- a/udf_funcs/python_scripts/transformer_spread.py +++ b/udf_funcs/python_scripts/transformer_spread.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import pandas as pd diff --git a/udf_funcs/python_scripts/udf_avg.py b/udf_funcs/python_scripts/udf_avg.py index 3dda56303f..a8dca35525 100644 --- a/udf_funcs/python_scripts/udf_avg.py +++ b/udf_funcs/python_scripts/udf_avg.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFAvg: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udf_count.py b/udf_funcs/python_scripts/udf_count.py index 375843d6f5..18931ac3ae 100644 --- a/udf_funcs/python_scripts/udf_count.py +++ b/udf_funcs/python_scripts/udf_count.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFCount: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udf_max.py b/udf_funcs/python_scripts/udf_max.py index 58201b76e0..83dbcd4dcb 100644 --- a/udf_funcs/python_scripts/udf_max.py +++ b/udf_funcs/python_scripts/udf_max.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFMax: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udf_max_with_key.py b/udf_funcs/python_scripts/udf_max_with_key.py index 1003915b2e..bd048203c3 100644 --- a/udf_funcs/python_scripts/udf_max_with_key.py +++ b/udf_funcs/python_scripts/udf_max_with_key.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFMaxWithKey: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udf_min.py b/udf_funcs/python_scripts/udf_min.py index bd1b2a4977..c155906b43 100644 --- a/udf_funcs/python_scripts/udf_min.py +++ b/udf_funcs/python_scripts/udf_min.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFMin: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udf_sum.py b/udf_funcs/python_scripts/udf_sum.py index 617e5070dc..7f36b3937b 100644 --- a/udf_funcs/python_scripts/udf_sum.py +++ b/udf_funcs/python_scripts/udf_sum.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFSum: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udsf_reverse_rows.py b/udf_funcs/python_scripts/udsf_reverse_rows.py index 7c05e0a738..1bdb148181 100644 --- a/udf_funcs/python_scripts/udsf_reverse_rows.py +++ b/udf_funcs/python_scripts/udsf_reverse_rows.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFReverseRows: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udsf_transpose.py b/udf_funcs/python_scripts/udsf_transpose.py index 90be6ad228..db5578a609 100644 --- a/udf_funcs/python_scripts/udsf_transpose.py +++ b/udf_funcs/python_scripts/udsf_transpose.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFTranspose: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udtf_arccos.py b/udf_funcs/python_scripts/udtf_arccos.py index 455d80ae47..5674ced2f5 100644 --- a/udf_funcs/python_scripts/udtf_arccos.py +++ b/udf_funcs/python_scripts/udtf_arccos.py @@ -1,19 +1,21 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # import math diff --git a/udf_funcs/python_scripts/udtf_column_expand.py b/udf_funcs/python_scripts/udtf_column_expand.py index 29b1a3e4ba..930f358d0b 100644 --- a/udf_funcs/python_scripts/udtf_column_expand.py +++ b/udf_funcs/python_scripts/udtf_column_expand.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFColumnExpand: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udtf_cos.py b/udf_funcs/python_scripts/udtf_cos.py index bd4160df9a..8c124bbe2e 100644 --- a/udf_funcs/python_scripts/udtf_cos.py +++ b/udf_funcs/python_scripts/udtf_cos.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + import math diff --git a/udf_funcs/python_scripts/udtf_key_add_one.py b/udf_funcs/python_scripts/udtf_key_add_one.py index 6a39d2b8de..792ecaffdd 100644 --- a/udf_funcs/python_scripts/udtf_key_add_one.py +++ b/udf_funcs/python_scripts/udtf_key_add_one.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFKeyAddOne: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udtf_multiply.py b/udf_funcs/python_scripts/udtf_multiply.py index f28fa6a94a..f5cd534726 100644 --- a/udf_funcs/python_scripts/udtf_multiply.py +++ b/udf_funcs/python_scripts/udtf_multiply.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFMultiply: def __init__(self): pass diff --git a/udf_funcs/python_scripts/udtf_pow.py b/udf_funcs/python_scripts/udtf_pow.py index 7f02151b24..7807a7e797 100644 --- a/udf_funcs/python_scripts/udtf_pow.py +++ b/udf_funcs/python_scripts/udtf_pow.py @@ -1,21 +1,23 @@ # # IGinX - the polystore system with high performance # Copyright (C) Tsinghua University +# TSIGinX@gmail.com # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # - + class UDFPow: def __init__(self): self._n = 1 From 7aa4d9a926e3bf34762cccd8edae1e9974ced2a6 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 21 Oct 2024 17:40:56 +0800 Subject: [PATCH 15/33] update readme for license update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6bac657c6b..6183997d86 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ IGinX is open for new team members or contributions. If you would like to join o ## License -[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) +[![License: LGPL v3](https://img.shields.io/badge/License-LGPLv3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) © 2023 (Tsinghua University). Please note that this refers to the middleware pieces of the IGinX system. From 67e6616e0c35ec216115fdbe748e2d6905c9f1de Mon Sep 17 00:00:00 2001 From: Xu Yihao <48053143+Yihao-Xu@users.noreply.github.com> Date: Tue, 22 Oct 2024 12:03:30 +0800 Subject: [PATCH 16/33] =?UTF-8?q?feat(optimizer):=20=E8=A7=84=E5=88=99?= =?UTF-8?q?=E7=BB=84=E7=9A=84=E5=AE=9E=E7=8E=B0=20(#470)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实现了规则组,将一系列相同的规则放到一个规则组中,以简化规则的设置和更改。 原有的Set Rules命令现在会更改规则组而不是规则 目前以下规则合并入规则组 一系列谓词下推规则 -> FilterPushDownRule ColumnPruningRule和FragmentPruningByPatternRule -> ColumnPruningRule 一系列ConstantFoldingRule -> ConstantFoldingRule 一系列DistinctEliminateRule -> DistinctEliminateRule 具体参考PR文档 https://oxlh5mrwi0.feishu.cn/wiki/OVt5wJxlRip2uQkiFS7c8IHNnzM 此外还删除了规则FilterJoinTransposeRule,这是一力之前写的示例规则,这里不保留了 --- .github/actions/confWriter/action.yml | 12 +--- conf/config.properties | 7 +- .../optimizer/rules/ColumnPruningRule.java | 6 +- .../rules/FilterConstantFoldingRule.java | 2 +- .../rules/FilterJoinTransposeRule.java | 70 ------------------- .../FilterPushDownAddSchemaPrefixRule.java | 1 + .../rules/FilterPushDownGroupByRule.java | 1 + .../FilterPushDownPathUnionJoinRule.java | 1 + .../FilterPushDownProjectReorderSortRule.java | 1 + .../rules/FilterPushDownRenameRule.java | 5 +- .../rules/FilterPushDownSelectRule.java | 5 +- .../rules/FilterPushDownSetOpRule.java | 1 + .../rules/FilterPushDownTransformRule.java | 1 + .../FilterPushIntoJoinConditionRule.java | 1 + .../rules/FilterPushOutJoinConditionRule.java | 5 +- .../rules/FragmentPruningByPatternRule.java | 2 +- .../rules/FunctionDistinctEliminateRule.java | 5 +- .../rules/InExistsDistinctEliminateRule.java | 2 +- .../RowTransformConstantFoldingRule.java | 5 +- .../iginx/logical/optimizer/rules/Rule.java | 28 ++++++++ .../optimizer/rules/RuleCollection.java | 53 ++++++++------ .../integration/func/sql/SQLSessionIT.java | 26 +++---- 22 files changed, 112 insertions(+), 128 deletions(-) delete mode 100644 optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterJoinTransposeRule.java diff --git a/.github/actions/confWriter/action.yml b/.github/actions/confWriter/action.yml index dfa7ff1e1f..7b10225d79 100644 --- a/.github/actions/confWriter/action.yml +++ b/.github/actions/confWriter/action.yml @@ -109,19 +109,13 @@ runs: run: | if [ "$RUNNER_OS" == "Linux" ]; then sudo sed -i 's/enablePushDown=false/enablePushDown=true/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i 's/FilterPushDownAddSchemaPrefixRule=off,FilterPushDownAddSchemaPrefixRule=off/FilterPushDownAddSchemaPrefixRule=on,FilterPushDownAddSchemaPrefixRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i 's/FilterPushDownPathUnionJoinRule=off,FilterPushDownProjectReorderSortRule=off,FilterPushDownRenameRule=off,FilterPushDownSelectRule=off/FilterPushDownPathUnionJoinRule=on,FilterPushDownProjectReorderSortRule=on,FilterPushDownRenameRule=on,FilterPushDownSelectRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i 's/FilterPushDownSetOpRule=off,FilterPushDownTransformRule=off,FilterPushIntoJoinConditionRule=off,FilterPushOutJoinConditionRule=off,FilterPushDownGroupByRule=off/FilterPushDownSetOpRule=on,FilterPushDownTransformRule=on,FilterPushIntoJoinConditionRule=on,FilterPushOutJoinConditionRule=on,FilterPushDownGroupByRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + sed -i 's/FilterPushDownRule=off/FilterPushDownRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties elif [ "$RUNNER_OS" == "Windows" ]; then sed -i 's/enablePushDown=false/enablePushDown=true/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i 's/FilterPushDownAddSchemaPrefixRule=off,FilterPushDownAddSchemaPrefixRule=off/FilterPushDownAddSchemaPrefixRule=on,FilterPushDownAddSchemaPrefixRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i 's/FilterPushDownPathUnionJoinRule=off,FilterPushDownProjectReorderSortRule=off,FilterPushDownRenameRule=off,FilterPushDownSelectRule=off/FilterPushDownPathUnionJoinRule=on,FilterPushDownProjectReorderSortRule=on,FilterPushDownRenameRule=on,FilterPushDownSelectRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i 's/FilterPushDownSetOpRule=off,FilterPushDownTransformRule=off,FilterPushIntoJoinConditionRule=off,FilterPushOutJoinConditionRule=off,FilterPushDownGroupByRule=off/FilterPushDownSetOpRule=on,FilterPushDownTransformRule=on,FilterPushIntoJoinConditionRule=on,FilterPushOutJoinConditionRule=on,FilterPushDownGroupByRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + sed -i 's/FilterPushDownRule=off/FilterPushDownRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties elif [ "$RUNNER_OS" == "macOS" ]; then sudo sed -i '' 's/enablePushDown=false/enablePushDown=true/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i '' 's/FilterPushDownAddSchemaPrefixRule=off,FilterPushDownAddSchemaPrefixRule=off/FilterPushDownAddSchemaPrefixRule=on,FilterPushDownAddSchemaPrefixRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i '' 's/FilterPushDownPathUnionJoinRule=off,FilterPushDownProjectReorderSortRule=off,FilterPushDownRenameRule=off,FilterPushDownSelectRule=off/FilterPushDownPathUnionJoinRule=on,FilterPushDownProjectReorderSortRule=on,FilterPushDownRenameRule=on,FilterPushDownSelectRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties - sed -i '' 's/FilterPushDownSetOpRule=off,FilterPushDownTransformRule=off,FilterPushIntoJoinConditionRule=off,FilterPushOutJoinConditionRule=off,FilterPushDownGroupByRule=off/FilterPushDownSetOpRule=on,FilterPushDownTransformRule=on,FilterPushIntoJoinConditionRule=on,FilterPushOutJoinConditionRule=on,FilterPushDownGroupByRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + sed -i '' 's/FilterPushDownRule=off/FilterPushDownRule=on/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties else echo "$RUNNER_OS is not supported" exit 1 diff --git a/conf/config.properties b/conf/config.properties index b4d91eba8b..c45060d5b9 100644 --- a/conf/config.properties +++ b/conf/config.properties @@ -68,11 +68,8 @@ maxCachedPhysicalTaskPerStorage=500 queryOptimizer=rbo # 优化器规则 -ruleBasedOptimizer=NotFilterRemoveRule=on,FragmentPruningByFilterRule=on,ColumnPruningRule=on,FragmentPruningByPatternRule=on,ConstantPropagationRule=on,FunctionDistinctEliminateRule=on,InExistsDistinctEliminateRule=on,\ - FilterConstantFoldingRule=on,RowTransformConstantFoldingRule=on,FilterPushDownAddSchemaPrefixRule=off,FilterPushDownAddSchemaPrefixRule=off,\ - FilterPushDownPathUnionJoinRule=off,FilterPushDownProjectReorderSortRule=off,FilterPushDownRenameRule=off,FilterPushDownSelectRule=off,\ - FilterPushDownSetOpRule=off,FilterPushDownTransformRule=off,FilterPushIntoJoinConditionRule=off,FilterPushOutJoinConditionRule=off,FilterPushDownGroupByRule=off,\ - JoinFactorizationRule=on,SetTransformPushDownPathUnionJoinRule=off +ruleBasedOptimizer=NotFilterRemoveRule=on,FragmentPruningByFilterRule=on,ColumnPruningRule=on,ConstantPropagationRule=on,DistinctEliminateRule=on,\ + ConstantFoldingRule=on,FilterPushDownRule=off,JoinFactorizationRule=on,SetTransformPushDownPathUnionJoinRule=off # ParallelFilter触发行数 parallelFilterThreshold=10000 diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java index 09f47f7d39..318ef1951b 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java @@ -58,7 +58,11 @@ public ColumnPruningRule() { * Any */ // 匹配任意操作符,但由于策略是ONCE,所以只会匹配到树的顶端 - super("ColumnPruningRule", operand(AbstractOperator.class, any()), RuleStrategy.ONCE); + super( + "ColumnPruningRule", + "ColumnPruningRule", + operand(AbstractOperator.class, any()), + RuleStrategy.ONCE); } @Override diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterConstantFoldingRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterConstantFoldingRule.java index c51290f8fe..f839a7992f 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterConstantFoldingRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterConstantFoldingRule.java @@ -39,7 +39,7 @@ public FilterConstantFoldingRule() { * | * Any */ - super("FilterConstantFoldingRule", operand(Select.class, any())); + super("FilterConstantFoldingRule", "ConstantFoldingRule", operand(Select.class, any())); } @Override diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterJoinTransposeRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterJoinTransposeRule.java deleted file mode 100644 index bc74c82802..0000000000 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterJoinTransposeRule.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * IGinX - the polystore system with high performance - * Copyright (C) Tsinghua University - * TSIGinX@gmail.com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package cn.edu.tsinghua.iginx.logical.optimizer.rules; - -import cn.edu.tsinghua.iginx.engine.shared.operator.AbstractJoin; -import cn.edu.tsinghua.iginx.engine.shared.operator.MarkJoin; -import cn.edu.tsinghua.iginx.engine.shared.operator.Select; -import cn.edu.tsinghua.iginx.engine.shared.operator.SingleJoin; -import cn.edu.tsinghua.iginx.engine.shared.source.OperatorSource; -import cn.edu.tsinghua.iginx.engine.shared.source.Source; -import cn.edu.tsinghua.iginx.logical.optimizer.core.RuleCall; - -// @AutoService(Rule.class) -public class FilterJoinTransposeRule extends Rule { - - public FilterJoinTransposeRule() { - /* - * we want to match the topology like: - * Select - * | - * AbstractJoin - * / \ - * Any Any - */ - super( - "FilterJoinTransposeRule", - operand(Select.class, operand(AbstractJoin.class, any(), any()))); - } - - @Override - public boolean matches(RuleCall call) { - Select select = (Select) call.getMatchedRoot(); - AbstractJoin join = (AbstractJoin) call.getChildrenIndex().get(select).get(0); - // we only deal with cross/inner/outer join for now. - return !(join instanceof MarkJoin) && !(join instanceof SingleJoin); - } - - @Override - public void onMatch(RuleCall call) { - Select select = (Select) call.getMatchedRoot(); - AbstractJoin join = (AbstractJoin) call.getChildrenIndex().get(select).get(0); - - Source sourceA = join.getSourceA(); - Source sourceB = join.getSourceB(); - - Select selectA = (Select) select.copyWithSource(sourceA); - Select selectB = (Select) select.copyWithSource(sourceB); - AbstractJoin newJoin = - (AbstractJoin) - join.copyWithSource(new OperatorSource(selectA), new OperatorSource(selectB)); - call.transformTo(newJoin); - } -} diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java index 0754db3cd2..ee7cbb4451 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownAddSchemaPrefixRule.java @@ -39,6 +39,7 @@ public FilterPushDownAddSchemaPrefixRule() { */ super( "FilterPushDownAddSchemaPrefixRule", + "FilterPushDownRule", operand(Select.class, operand(AddSchemaPrefix.class, any()))); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownGroupByRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownGroupByRule.java index 3d5b8585e0..201fa0e8c9 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownGroupByRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownGroupByRule.java @@ -46,6 +46,7 @@ public FilterPushDownGroupByRule() { */ super( "FilterPushDownGroupByRule", + "FilterPushDownRule", operand(Select.class, operand(AbstractUnaryOperator.class, any()))); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java index 7fc991a486..780ed05095 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java @@ -59,6 +59,7 @@ public FilterPushDownPathUnionJoinRule() { */ super( "FilterPushDownPathUnionJoinRule", + "FilterPushDownRule", operand(Select.class, operand(AbstractBinaryOperator.class, any(), any()))); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownProjectReorderSortRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownProjectReorderSortRule.java index cef379d51e..14d21ae1bc 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownProjectReorderSortRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownProjectReorderSortRule.java @@ -43,6 +43,7 @@ public FilterPushDownProjectReorderSortRule() { */ super( "FilterPushDownProjectReorderSortRule", + "FilterPushDownRule", operand(Select.class, operand(AbstractUnaryOperator.class, any()))); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java index 8092e1decc..8c696d62c3 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java @@ -40,7 +40,10 @@ public FilterPushDownRenameRule() { * | * Rename */ - super("FilterPushDownRenameRule", operand(Select.class, operand(Rename.class, any()))); + super( + "FilterPushDownRenameRule", + "FilterPushDownRule", + operand(Select.class, operand(Rename.class, any()))); } @Override diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSelectRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSelectRule.java index 8bbeabf2b8..9d3821de69 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSelectRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSelectRule.java @@ -34,7 +34,10 @@ public FilterPushDownSelectRule() { * | * Select */ - super("FilterPushDownSelectRule", operand(Select.class, operand(Select.class, any()))); + super( + "FilterPushDownSelectRule", + "FilterPushDownRule", + operand(Select.class, operand(Select.class, any()))); } @Override diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java index 808b6a49a6..600bf74a9a 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java @@ -47,6 +47,7 @@ public FilterPushDownSetOpRule() { */ super( "FilterPushDownSetOpRule", + "FilterPushDownRule", operand(Select.class, operand(AbstractBinaryOperator.class, any(), any()))); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java index 78e0b03aff..3c7c1f457e 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java @@ -45,6 +45,7 @@ public FilterPushDownTransformRule() { */ super( "FilterPushDownTransformRule", + "FilterPushDownRule", operand(Select.class, operand(AbstractUnaryOperator.class, any()))); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushIntoJoinConditionRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushIntoJoinConditionRule.java index 1b7c677a80..1e377253cb 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushIntoJoinConditionRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushIntoJoinConditionRule.java @@ -40,6 +40,7 @@ public FilterPushIntoJoinConditionRule() { */ super( "FilterPushIntoJoinConditionRule", + "FilterPushDownRule", operand(Select.class, operand(AbstractJoin.class, any(), any()))); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushOutJoinConditionRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushOutJoinConditionRule.java index e71a57e7ea..3de527c2b4 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushOutJoinConditionRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushOutJoinConditionRule.java @@ -51,7 +51,10 @@ public FilterPushOutJoinConditionRule() { * / \ * any any */ - super("FilterPushOutJoinConditionRule", operand(AbstractJoin.class, any(), any())); + super( + "FilterPushOutJoinConditionRule", + "FilterPushDownRule", + operand(AbstractJoin.class, any(), any())); } @Override diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByPatternRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByPatternRule.java index 1e89e9e2ba..27c586179c 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByPatternRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FragmentPruningByPatternRule.java @@ -46,7 +46,7 @@ public FragmentPruningByPatternRule() { * Fragment */ // Fragment的检测在matches中进行 - super("FragmentPruningByPatternRule", operand(Project.class)); + super("FragmentPruningByPatternRule", "ColumnPruningRule", operand(Project.class)); } @Override diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FunctionDistinctEliminateRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FunctionDistinctEliminateRule.java index 830b05e6f6..97e8801755 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FunctionDistinctEliminateRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FunctionDistinctEliminateRule.java @@ -43,7 +43,10 @@ public FunctionDistinctEliminateRule() { * | * Any */ - super("FunctionDistinctEliminateRule", operand(AbstractUnaryOperator.class, any())); + super( + "FunctionDistinctEliminateRule", + "DistinctEliminateRule", + operand(AbstractUnaryOperator.class, any())); } public boolean matches(RuleCall call) { diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/InExistsDistinctEliminateRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/InExistsDistinctEliminateRule.java index c898ee4589..a177ce3c4d 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/InExistsDistinctEliminateRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/InExistsDistinctEliminateRule.java @@ -44,7 +44,7 @@ public InExistsDistinctEliminateRule() { * | * Any */ - super("InExistsDistinctEliminateRule", operand(Distinct.class, any())); + super("InExistsDistinctEliminateRule", "DistinctEliminateRule", operand(Distinct.class, any())); } public boolean matches(RuleCall call) { diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java index 003b9d408e..f536f53ea8 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RowTransformConstantFoldingRule.java @@ -42,7 +42,10 @@ public RowTransformConstantFoldingRule() { * | * Any */ - super("RowTransformConstantFoldingRule", operand(RowTransform.class, any())); + super( + "RowTransformConstantFoldingRule", + "ConstantFoldingRule", + operand(RowTransform.class, any())); } @Override diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/Rule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/Rule.java index 674c83b97a..d7dd0b6873 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/Rule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/Rule.java @@ -32,6 +32,8 @@ public abstract class Rule { private final String ruleName; + private final String ruleGroupName; + /** operand describes the local topology we want to match in this rule */ private final Operand operand; @@ -43,6 +45,10 @@ protected Rule(String ruleName, Operand operand) { this(ruleName, operand, DEFAULT_PRIORITY, DEFAULT_STRATEGY); } + protected Rule(String ruleName, String ruleGroupName, Operand operand) { + this(ruleName, ruleGroupName, operand, DEFAULT_PRIORITY, DEFAULT_STRATEGY); + } + protected Rule(String ruleName, Operand operand, long priority) { this(ruleName, operand, priority, DEFAULT_STRATEGY); } @@ -51,8 +57,26 @@ protected Rule(String ruleName, Operand operand, RuleStrategy strategy) { this(ruleName, operand, DEFAULT_PRIORITY, strategy); } + protected Rule(String ruleName, String ruleGroupName, Operand operand, RuleStrategy strategy) { + this(ruleName, ruleGroupName, operand, DEFAULT_PRIORITY, strategy); + } + protected Rule(String ruleName, Operand operand, long priority, RuleStrategy strategy) { this.ruleName = ruleName; + this.ruleGroupName = ruleName; + this.operand = operand; + this.priority = priority; + this.strategy = strategy; + } + + protected Rule( + String ruleName, + String ruleGroupName, + Operand operand, + long priority, + RuleStrategy strategy) { + this.ruleName = ruleName; + this.ruleGroupName = ruleGroupName; this.operand = operand; this.priority = priority; this.strategy = strategy; @@ -62,6 +86,10 @@ public String getRuleName() { return ruleName; } + public String getRuleGroupName() { + return ruleGroupName; + } + public Operand getOperand() { return operand; } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleCollection.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleCollection.java index d14bb00ab0..6651372bf6 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleCollection.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/RuleCollection.java @@ -63,7 +63,7 @@ private void setRulesByConfig() { Config config = configDescriptor.getConfig(); String[] ruleSettingList = config.getRuleBasedOptimizer().split(","); - Set banRules = new HashSet<>(rules.keySet()); + Set banRules = getAllGroup(); for (String ruleSetting : ruleSettingList) { String[] ruleInfo = ruleSetting.split("="); @@ -77,7 +77,15 @@ private void setRulesByConfig() { } } - banRulesByName(banRules); + banRulesGroupByName(banRules); + } + + private Set getAllGroup() { + Set group = new HashSet<>(); + for (Rule rule : rules.values()) { + group.add(rule.getRuleGroupName()); + } + return group; } private void addRule(Rule rule) { @@ -122,30 +130,35 @@ public boolean banRulesByName(Collection ruleNames) { return true; } - public boolean banRuleByName(String ruleName) { - if (!rules.containsKey(ruleName)) { - LOGGER.error("IGinX rule collection does not include rule: {}", ruleName); - return false; + public boolean banRulesGroupByName(Collection ruleGroupNames) { + for (String ruleGroupName : ruleGroupNames) { + banRulesGroup(ruleGroupName); } - bannedRules.put(ruleName, rules.get(ruleName)); return true; } - public boolean setRules(Map rulesChange) { - // Check whether any rule does not exist before setting it - // 先检查是否有不存在的规则,再进行设置 - for (String ruleName : rulesChange.keySet()) { - if (!rules.containsKey(ruleName)) { - LOGGER.error("IGinX rule collection does not include rule: {}", ruleName); - return false; + public void banRulesGroup(String ruleGroupName) { + for (Rule rule : rules.values()) { + if (rule.getRuleGroupName().equals(ruleGroupName)) { + banRules(rule); } } + } - for (String ruleName : rulesChange.keySet()) { - if (rulesChange.get(ruleName)) { - unbanRule(rules.get(ruleName)); + public void unbanRulesGroup(String ruleGroupName) { + for (Rule rule : rules.values()) { + if (rule.getRuleGroupName().equals(ruleGroupName)) { + unbanRule(rule); + } + } + } + + public boolean setRules(Map rulesChange) { + for (String ruleGroupName : rulesChange.keySet()) { + if (rulesChange.get(ruleGroupName)) { + unbanRulesGroup(ruleGroupName); } else { - banRules(rules.get(ruleName)); + banRulesGroup(ruleGroupName); } } @@ -154,8 +167,8 @@ public boolean setRules(Map rulesChange) { public Map getRulesInfo() { Map rulesInfo = new HashMap<>(); - for (String ruleName : rules.keySet()) { - rulesInfo.put(ruleName, !bannedRules.containsKey(ruleName)); + for (Rule rule : rules.values()) { + rulesInfo.put(rule.getRuleGroupName(), !bannedRules.containsKey(rule.getRuleName())); } return rulesInfo; } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 243a63b616..4df995cdee 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -104,7 +104,7 @@ public SQLSessionIT() { dbConf.getEnumValue(DBConfType.isSupportSpecialCharacterPath); String rules = executor.execute("SHOW RULES;"); - this.isFilterPushDown = rules.contains("FilterPushOutJoinConditionRule| ON|"); + this.isFilterPushDown = rules.contains("FilterPushDownRule| ON|"); } @BeforeClass @@ -6926,7 +6926,7 @@ public void testFilterPushDownExplain() { "INSERT INTO us.d3(key, s1) VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9);"; executor.execute(insert); - String closeRule = "SET RULES FragmentPruningByPatternRule=OFF, ColumnPruningRule=OFF;"; + String closeRule = "SET RULES ColumnPruningRule=OFF;"; executor.execute(closeRule); StringBuilder builder = new StringBuilder(); @@ -7316,7 +7316,7 @@ public void testFilterPushDownExplain() { assertEquals(res, expectRes); } - String openRule = "SET RULES FragmentPruningByPatternRule=ON, ColumnPruningRule=ON;"; + String openRule = "SET RULES ColumnPruningRule=ON;"; executor.execute(openRule); } @@ -7340,7 +7340,7 @@ public void testFilterFragmentOptimizer() { return; } - String closeRule = "SET RULES FragmentPruningByPatternRule=OFF, ColumnPruningRule=OFF;"; + String closeRule = "SET RULES ColumnPruningRule=OFF;"; executor.execute(closeRule); String insert = @@ -7536,8 +7536,7 @@ public void testFilterFragmentOptimizer() { executor.concurrentExecuteAndCompare(statementsAndExpectResNoChange); // 开启filter_fragment - statement = - "SET RULES FragmentPruningByFilterRule=ON, FragmentPruningByPatternRule=ON, ColumnPruningRule=ON;"; + statement = "SET RULES FragmentPruningByFilterRule=ON, ColumnPruningRule=ON;"; executor.execute(statement); } @@ -7695,7 +7694,7 @@ public void testColumnPruningAndFragmentPruning() { insert.append(";"); executor.execute(insert.toString()); - String closeRule = "SET RULES ColumnPruningRule=OFF, FragmentPruningByPatternRule=OFF;"; + String closeRule = "SET RULES ColumnPruningRule=OFF;"; executor.execute(closeRule); String sql1 = "explain SELECT us.d1.s1 FROM (SELECT * FROM us.d1);"; @@ -7815,7 +7814,7 @@ public void testColumnPruningAndFragmentPruning() { + "Total line number = 11\n"; executor.executeAndCompare(sql6, expect6); - String openRule = "SET RULES ColumnPruningRule=ON, FragmentPruningByPatternRule=ON;"; + String openRule = "SET RULES ColumnPruningRule=ON;"; executor.execute(openRule); expect1 = @@ -7979,9 +7978,8 @@ public void testConstantPropagation() { /** 对常量折叠进行测试,因为RowTransform常量折叠和Filter常量折叠使用的代码都是公共的,所以这里只测试更好对比结果的RowTransform常量折叠 */ @Test public void testConstantFolding() { - String openRule = "SET RULES RowTransformConstantFoldingRule=on, FilterConstantFoldingRule=on;"; - String closeRule = - "SET RULES RowTransformConstantFoldingRule=off, FilterConstantFoldingRule=off;"; + String openRule = "SET RULES ConstantFoldingRule=on;"; + String closeRule = "SET RULES ConstantFoldingRule=off;"; executor.execute(openRule); @@ -8189,10 +8187,8 @@ public void testDistinctEliminate() { insert.append(";"); executor.execute(insert.toString()); - String openRule = - "SET RULES FunctionDistinctEliminateRule=on, InExistsDistinctEliminateRule=on;"; - String closeRule = - "SET RULES FunctionDistinctEliminateRule=off, InExistsDistinctEliminateRule=off;"; + String openRule = "SET RULES DistinctEliminateRule=on;"; + String closeRule = "SET RULES DistinctEliminateRule=off;"; String closeResult = null; // 测试InExistsDistinctEliminateRule From aff9e62e326edd28a4bacaf244c41a124a55589f Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Tue, 22 Oct 2024 16:07:02 +0800 Subject: [PATCH 17/33] feat(sql): GROUP BY expr && ORDER BY expr (#465) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(sql): GROUP BY expr && ORDER BY expr 1.支持对GROUP BY和ORDER BY中的列使用RowToRow表达式 2.支持GROUP BY和ORDER BY中的列与SELECT子句中的别名进行匹配 Co-authored-by: Yuqing Zhu --- .../antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 13 +- .../logical/generator/QueryGenerator.java | 6 +- .../engine/logical/utils/OperatorUtils.java | 10 +- .../naive/NaiveOperatorMemoryExecutor.java | 10 + .../stream/StreamOperatorMemoryExecutor.java | 13 +- .../memory/execute/utils/HeaderUtils.java | 65 ++++++ .../engine/shared/expr/BaseExpression.java | 12 + .../engine/shared/expr/BinaryExpression.java | 14 ++ .../engine/shared/expr/BracketExpression.java | 12 + .../shared/expr/CaseWhenExpression.java | 34 +++ .../shared/expr/ConstantExpression.java | 18 ++ .../iginx/engine/shared/expr/Expression.java | 2 + .../shared/expr/FromValueExpression.java | 16 +- .../engine/shared/expr/FuncExpression.java | 37 +++ .../engine/shared/expr/KeyExpression.java | 8 + .../shared/expr/MultipleExpression.java | 22 ++ .../shared/expr/SequenceExpression.java | 12 + .../engine/shared/expr/UnaryExpression.java | 12 + .../shared/function/FunctionParams.java | 5 + .../iginx/engine/shared/operator/GroupBy.java | 40 +++- .../iginx/engine/shared/operator/Sort.java | 38 ++- .../shared/operator/filter/ExprFilter.java | 20 ++ .../tsinghua/iginx/sql/IginXSqlVisitor.java | 220 ++++++++++++++---- .../select/BinarySelectStatement.java | 5 + .../sql/statement/select/SelectStatement.java | 14 +- .../select/UnarySelectStatement.java | 127 ++-------- .../select/subclause/GroupByClause.java | 13 +- .../select/subclause/OrderByClause.java | 30 ++- .../iginx/sql/utils/ExpressionUtils.java | 113 +++++++++ .../AbstractOperatorMemoryExecutorTest.java | 7 +- .../cn/edu/tsinghua/iginx/sql/ParseTest.java | 13 +- .../optimizer/rules/ColumnPruningRule.java | 25 +- .../integration/func/sql/SQLSessionIT.java | 69 ++++++ .../iginx/integration/func/udf/UDFIT.java | 86 +++++++ .../integration/func/udf/UDFTestTools.java | 11 + 35 files changed, 949 insertions(+), 203 deletions(-) diff --git a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 index a993922da1..d53365ed96 100644 --- a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 +++ b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 @@ -150,11 +150,11 @@ functionName ; caseSpecification - : simipleCase + : simpleCase | searchedCase ; -simipleCase +simpleCase : CASE expression simpleWhenClause (simpleWhenClause)* elseClause? END ; @@ -303,7 +303,12 @@ specialClause ; groupByClause - : GROUP BY path (COMMA path)* + : GROUP BY groupByItem (COMMA groupByItem)* + ; + +groupByItem + : path + | expression ; havingClause @@ -315,7 +320,7 @@ orderByClause ; orderItem - : path (DESC | ASC)? + : (path | expression) (DESC | ASC)? ; downsampleClause diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java index 238df06ae6..f9df71de14 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java @@ -583,7 +583,7 @@ private static Operator buildLimit(SelectStatement selectStatement, Operator roo * @return 添加了Sort操作符的根节点;如果没有Order By子句,返回原根节点 */ private static Operator buildOrderByPaths(SelectStatement selectStatement, Operator root) { - if (selectStatement.getOrderByPaths().isEmpty()) { + if (selectStatement.getOrderByExpressions().isEmpty()) { return root; } List sortTypes = new ArrayList<>(); @@ -591,7 +591,7 @@ private static Operator buildOrderByPaths(SelectStatement selectStatement, Opera .getAscendingList() .forEach( isAscending -> sortTypes.add(isAscending ? Sort.SortType.ASC : Sort.SortType.DESC)); - return new Sort(new OperatorSource(root), selectStatement.getOrderByPaths(), sortTypes); + return new Sort(new OperatorSource(root), selectStatement.getOrderByExpressions(), sortTypes); } /** @@ -662,7 +662,7 @@ private Operator buildGroupByQuery(UnarySelectStatement selectStatement, Operato List functionCallList = getFunctionCallList(selectStatement, MappingType.SetMapping); return new GroupBy( - new OperatorSource(root), selectStatement.getGroupByPaths(), functionCallList); + new OperatorSource(root), selectStatement.getGroupByExpressions(), functionCallList); } /** diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java index a09503a0a2..f953cb9d81 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java @@ -27,6 +27,7 @@ import static cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType.isUnaryOperator; import cn.edu.tsinghua.iginx.engine.shared.expr.BaseExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; @@ -316,18 +317,19 @@ private static Operator pushDownApply(Operator root, List correlatedVari root = new GroupBy( new OperatorSource(pushDownApply(apply, correlatedVariables)), - correlatedVariables, + correlatedVariables.stream().map(BaseExpression::new).collect(Collectors.toList()), setTransform.getFunctionCallList()); break; case GroupBy: GroupBy groupBy = (GroupBy) operatorB; apply.setSourceB(groupBy.getSource()); - List groupByCols = groupBy.getGroupByCols(); - groupByCols.addAll(correlatedVariables); + List groupByExpressions = groupBy.getGroupByExpressions(); + groupByExpressions.addAll( + correlatedVariables.stream().map(BaseExpression::new).collect(Collectors.toList())); root = new GroupBy( new OperatorSource(pushDownApply(apply, correlatedVariables)), - groupByCols, + groupByExpressions, groupBy.getFunctionCallList()); break; case Rename: diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java index 2dd2bc4685..9e9dc54446 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java @@ -261,6 +261,11 @@ private RowStream executeSelect(Select select, Table table) throws PhysicalExcep } private RowStream executeSort(Sort sort, Table table) throws PhysicalException { + RowTransform preRowTransform = HeaderUtils.checkSortHeader(table.getHeader(), sort); + if (preRowTransform != null) { + table = transformToTable(executeRowTransform(preRowTransform, table)); + } + List ascendingList = sort.getAscendingList(); RowUtils.sortRows(table.getRows(), ascendingList, sort.getSortByCols()); return table; @@ -483,6 +488,11 @@ private RowStream executeAddSchemaPrefix(AddSchemaPrefix addSchemaPrefix, Table } private RowStream executeGroupBy(GroupBy groupBy, Table table) throws PhysicalException { + RowTransform preRowTransform = HeaderUtils.checkGroupByHeader(table.getHeader(), groupBy); + if (preRowTransform != null) { + table = transformToTable(executeRowTransform(preRowTransform, table)); + } + List rows = RowUtils.cacheGroupByResult(groupBy, table); if (rows.isEmpty()) { return Table.EMPTY_TABLE; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java index 56083f3d76..71e469c813 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/stream/StreamOperatorMemoryExecutor.java @@ -26,6 +26,7 @@ import cn.edu.tsinghua.iginx.engine.physical.exception.UnexpectedOperatorException; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.OperatorMemoryExecutor; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.Table; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.HeaderUtils; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.RowUtils; import cn.edu.tsinghua.iginx.engine.shared.Constants; import cn.edu.tsinghua.iginx.engine.shared.RequestContext; @@ -198,6 +199,11 @@ private RowStream executeSelect(Select select, RowStream stream) { } private RowStream executeSort(Sort sort, RowStream stream) throws PhysicalException { + RowTransform preRowTransform = HeaderUtils.checkSortHeader(stream.getHeader(), sort); + if (preRowTransform != null) { + stream = executeRowTransform(preRowTransform, stream); + } + return new SortLazyStream(sort, stream); } @@ -270,7 +276,12 @@ private RowStream executeAddSchemaPrefix(AddSchemaPrefix addSchemaPrefix, RowStr return new AddSchemaPrefixLazyStream(addSchemaPrefix, stream); } - private RowStream executeGroupBy(GroupBy groupBy, RowStream stream) { + private RowStream executeGroupBy(GroupBy groupBy, RowStream stream) throws PhysicalException { + RowTransform preRowTransform = HeaderUtils.checkGroupByHeader(stream.getHeader(), groupBy); + if (preRowTransform != null) { + stream = executeRowTransform(preRowTransform, stream); + } + return new GroupByLazyStream(groupBy, stream); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java index 2f314d9047..30c11e1084 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java @@ -19,6 +19,7 @@ */ package cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils; +import static cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr.ARITHMETIC_EXPR; import static cn.edu.tsinghua.iginx.engine.shared.function.system.utils.ValueUtils.isNumericType; import static cn.edu.tsinghua.iginx.sql.SQLConstant.DOT; import static cn.edu.tsinghua.iginx.thrift.DataType.BOOLEAN; @@ -28,13 +29,26 @@ import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; +import cn.edu.tsinghua.iginx.engine.shared.expr.BaseExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; +import cn.edu.tsinghua.iginx.engine.shared.expr.KeyExpression; +import cn.edu.tsinghua.iginx.engine.shared.function.Function; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; +import cn.edu.tsinghua.iginx.engine.shared.function.manager.FunctionManager; +import cn.edu.tsinghua.iginx.engine.shared.operator.GroupBy; +import cn.edu.tsinghua.iginx.engine.shared.operator.RowTransform; +import cn.edu.tsinghua.iginx.engine.shared.operator.Sort; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; +import cn.edu.tsinghua.iginx.engine.shared.source.EmptySource; import cn.edu.tsinghua.iginx.thrift.DataType; import cn.edu.tsinghua.iginx.utils.Pair; import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Objects; +import java.util.Set; public class HeaderUtils { @@ -330,4 +344,55 @@ public static void checkHeadersComparable(Header headerA, Header headerB) } } } + + public static RowTransform checkGroupByHeader(Header header, GroupBy groupBy) { + Set appendExpressions = new HashSet<>(); + for (Expression groupByExpr : groupBy.getGroupByExpressions()) { + String exprName = groupByExpr.getColumnName(); + boolean found = + header.getFields().stream().anyMatch(field -> field.getName().equals(exprName)); + if (!found) { + appendExpressions.add(groupByExpr); + } + } + + if (appendExpressions.isEmpty()) { + return null; + } + return appendArithExpressions(header, new ArrayList<>(appendExpressions)); + } + + public static RowTransform checkSortHeader(Header header, Sort sort) { + List sortExpressions = new ArrayList<>(sort.getSortByExpressions()); + if (sortExpressions.get(0) instanceof KeyExpression) { + sortExpressions.remove(0); + } + Set appendExpressions = new HashSet<>(); + for (Expression sortExpr : sortExpressions) { + String exprName = sortExpr.getColumnName(); + boolean found = + header.getFields().stream().anyMatch(field -> field.getName().equals(exprName)); + if (!found) { + appendExpressions.add(sortExpr); + } + } + + if (appendExpressions.isEmpty()) { + return null; + } + return appendArithExpressions(header, new ArrayList<>(appendExpressions)); + } + + private static RowTransform appendArithExpressions(Header header, List expressions) { + List functionCallList = new ArrayList<>(); + Function function = FunctionManager.getInstance().getFunction(ARITHMETIC_EXPR); + for (Field field : header.getFields()) { + functionCallList.add( + new FunctionCall(function, new FunctionParams(new BaseExpression(field.getName())))); + } + for (Expression expr : expressions) { + functionCallList.add(new FunctionCall(function, new FunctionParams(expr))); + } + return new RowTransform(EmptySource.EMPTY_SOURCE, functionCallList); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BaseExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BaseExpression.java index a33efa03e5..f9441d1afb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BaseExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BaseExpression.java @@ -70,4 +70,16 @@ public void setAlias(String alias) { public void accept(ExpressionVisitor visitor) { visitor.visit(this); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.Base) { + return false; + } + BaseExpression that = (BaseExpression) expr; + return this.pathName.equals(that.pathName); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BinaryExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BinaryExpression.java index 492e49f16f..dad19db3df 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BinaryExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BinaryExpression.java @@ -97,4 +97,18 @@ public void accept(ExpressionVisitor visitor) { leftExpression.accept(visitor); rightExpression.accept(visitor); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.Binary) { + return false; + } + BinaryExpression that = (BinaryExpression) expr; + return this.leftExpression.equalExceptAlias(that.leftExpression) + && this.rightExpression.equalExceptAlias(that.rightExpression) + && this.op == that.op; + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BracketExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BracketExpression.java index 3f92719c19..65c102f0d7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BracketExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/BracketExpression.java @@ -71,4 +71,16 @@ public void accept(ExpressionVisitor visitor) { visitor.visit(this); expression.accept(visitor); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.Bracket) { + return false; + } + BracketExpression that = (BracketExpression) expr; + return this.expression.equalExceptAlias(that.expression); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/CaseWhenExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/CaseWhenExpression.java index 297ac6ac8c..df70a18f37 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/CaseWhenExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/CaseWhenExpression.java @@ -107,4 +107,38 @@ public void accept(ExpressionVisitor visitor) { } resultElse.accept(visitor); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.CaseWhen) { + return false; + } + CaseWhenExpression that = (CaseWhenExpression) expr; + if (this.conditions.size() != that.conditions.size()) { + return false; + } + for (int i = 0; i < this.conditions.size(); i++) { + if (!this.conditions.get(i).equals(that.conditions.get(i))) { + return false; + } + } + if (this.results.size() != that.results.size()) { + return false; + } + for (int i = 0; i < this.results.size(); i++) { + if (!this.results.get(i).equalExceptAlias(that.results.get(i))) { + return false; + } + } + if (this.resultElse == null && that.resultElse == null) { + return true; + } + if (this.resultElse == null || that.resultElse == null) { + return false; + } + return this.resultElse.equalExceptAlias(that.resultElse); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java index 9e3068760d..d0955f307b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java @@ -19,6 +19,8 @@ */ package cn.edu.tsinghua.iginx.engine.shared.expr; +import java.util.Arrays; + public class ConstantExpression implements Expression { private final Object value; @@ -70,4 +72,20 @@ public void setAlias(String alias) { public void accept(ExpressionVisitor visitor) { visitor.visit(this); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.Constant) { + return false; + } + ConstantExpression that = (ConstantExpression) expr; + if (value instanceof byte[]) { + return Arrays.equals((byte[]) value, (byte[]) that.value); + } else { + return this.value.equals(that.value); + } + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java index 27e58fdddf..50c762c5ef 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/Expression.java @@ -33,6 +33,8 @@ public interface Expression { void accept(ExpressionVisitor visitor); + boolean equalExceptAlias(Expression expr); + enum ExpressionType { Bracket, Binary, diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FromValueExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FromValueExpression.java index 25ecebc14c..3d4dc0ebb8 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FromValueExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FromValueExpression.java @@ -35,7 +35,7 @@ public SelectStatement getSubStatement() { @Override public String getColumnName() { - return ""; + return "*"; } @Override @@ -50,7 +50,7 @@ public boolean hasAlias() { @Override public String getAlias() { - return null; + return ""; } @Override @@ -60,4 +60,16 @@ public void setAlias(String alias) {} public void accept(ExpressionVisitor visitor) { visitor.visit(this); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.FromValue) { + return false; + } + FromValueExpression that = (FromValueExpression) expr; + return this.subStatement.equals(that.subStatement); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java index d3bdb61b3c..9515b933c1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java @@ -128,4 +128,41 @@ public void accept(ExpressionVisitor visitor) { visitor.visit(this); expressions.forEach(e -> e.accept(visitor)); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.Function) { + return false; + } + FuncExpression that = (FuncExpression) expr; + + if (this.isPyUDF != that.isPyUDF) { + return false; + } + if (this.isPyUDF) { + if (!this.funcName.equals(that.funcName)) { + return false; + } + } else { + if (!this.funcName.equalsIgnoreCase(that.funcName)) { + return false; + } + } + + if (this.getExpressions().size() != that.getExpressions().size()) { + return false; + } + for (int i = 0; i < this.getExpressions().size(); i++) { + if (!this.getExpressions().get(i).equalExceptAlias(that.getExpressions().get(i))) { + return false; + } + } + + return this.args.equals(that.args) + && this.kvargs.equals(that.kvargs) + && this.isDistinct == that.isDistinct; + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java index d18769b5a0..73f4372dba 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/KeyExpression.java @@ -60,4 +60,12 @@ public void setAlias(String alias) { public void accept(ExpressionVisitor visitor) { visitor.visit(this); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + return expr != null && expr.getType() == ExpressionType.Key; + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/MultipleExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/MultipleExpression.java index 23e39acb4c..579c881695 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/MultipleExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/MultipleExpression.java @@ -111,4 +111,26 @@ public void accept(ExpressionVisitor visitor) { visitor.visit(this); children.forEach(e -> e.accept(visitor)); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.Multiple) { + return false; + } + MultipleExpression that = (MultipleExpression) expr; + + if (this.getChildren().size() != that.getChildren().size()) { + return false; + } + for (int i = 0; i < this.getChildren().size(); i++) { + if (!this.getChildren().get(i).equalExceptAlias(that.getChildren().get(i))) { + return false; + } + } + + return this.ops.equals(that.ops); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java index 9cba100336..e4d97aaf3f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/SequenceExpression.java @@ -78,4 +78,16 @@ public void setAlias(String alias) { public void accept(ExpressionVisitor visitor) { visitor.visit(this); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.Sequence) { + return false; + } + SequenceExpression that = (SequenceExpression) expr; + return this.start == that.start && this.increment == that.increment; + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/UnaryExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/UnaryExpression.java index bb42c69bec..9fc8699386 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/UnaryExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/UnaryExpression.java @@ -77,4 +77,16 @@ public void accept(ExpressionVisitor visitor) { visitor.visit(this); expression.accept(visitor); } + + @Override + public boolean equalExceptAlias(Expression expr) { + if (this == expr) { + return true; + } + if (expr == null || expr.getType() != ExpressionType.Unary) { + return false; + } + UnaryExpression that = (UnaryExpression) expr; + return this.expression.equalExceptAlias(that.expression) && this.operator.equals(that.operator); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java index 3e1e88ec6b..3513b30e69 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionParams.java @@ -22,6 +22,7 @@ import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -39,6 +40,10 @@ public class FunctionParams { private boolean isDistinct; + public FunctionParams(Expression expression) { + this(Collections.singletonList(expression), null, null, false); + } + public FunctionParams(List expressions) { this(expressions, null, null, false); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/GroupBy.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/GroupBy.java index d4608b9d59..b1e7840424 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/GroupBy.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/GroupBy.java @@ -19,27 +19,39 @@ */ package cn.edu.tsinghua.iginx.engine.shared.operator; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; import cn.edu.tsinghua.iginx.engine.shared.source.Source; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; public class GroupBy extends AbstractUnaryOperator { + private final List groupByExpressions; + private final List groupByCols; private final List functionCallList; - public GroupBy(Source source, List groupByCols, List functionCallList) { + public GroupBy( + Source source, List groupByExpressions, List functionCallList) { super(OperatorType.GroupBy, source); - if (groupByCols == null || groupByCols.isEmpty()) { + if (groupByExpressions == null || groupByExpressions.isEmpty()) { throw new IllegalArgumentException("groupByCols shouldn't be null"); } - this.groupByCols = groupByCols; + this.groupByExpressions = groupByExpressions; + this.groupByCols = + groupByExpressions.stream().map(Expression::getColumnName).collect(Collectors.toList()); this.functionCallList = functionCallList; } + public List getGroupByExpressions() { + return groupByExpressions; + } + public List getGroupByCols() { return groupByCols; } @@ -50,13 +62,21 @@ public List getFunctionCallList() { @Override public Operator copy() { + List copyGroupByExpressions = new ArrayList<>(groupByExpressions.size()); + for (Expression expression : groupByExpressions) { + copyGroupByExpressions.add(ExprUtils.copy(expression)); + } return new GroupBy( - getSource().copy(), new ArrayList<>(groupByCols), new ArrayList<>(functionCallList)); + getSource().copy(), copyGroupByExpressions, new ArrayList<>(functionCallList)); } @Override public UnaryOperator copyWithSource(Source source) { - return new GroupBy(source, new ArrayList<>(groupByCols), new ArrayList<>(functionCallList)); + List copyGroupByExpressions = new ArrayList<>(groupByExpressions.size()); + for (Expression expression : groupByExpressions) { + copyGroupByExpressions.add(ExprUtils.copy(expression)); + } + return new GroupBy(source, copyGroupByExpressions, new ArrayList<>(functionCallList)); } public boolean isDistinct() { @@ -96,6 +116,14 @@ public boolean equals(Object object) { return false; } GroupBy that = (GroupBy) object; - return groupByCols.equals(that.groupByCols) && functionCallList.equals(that.functionCallList); + if (this.groupByExpressions.size() != that.groupByExpressions.size()) { + return false; + } + for (int i = 0; i < this.groupByExpressions.size(); i++) { + if (!this.groupByExpressions.get(i).equalExceptAlias(that.groupByExpressions.get(i))) { + return false; + } + } + return functionCallList.equals(that.functionCallList); } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Sort.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Sort.java index 3ec855bfe0..7243e39a23 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Sort.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/Sort.java @@ -19,6 +19,8 @@ */ package cn.edu.tsinghua.iginx.engine.shared.operator; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; import cn.edu.tsinghua.iginx.engine.shared.source.Source; import java.util.ArrayList; @@ -27,22 +29,30 @@ public class Sort extends AbstractUnaryOperator { + private final List sortByExpressions; + private final List sortByCols; private final List sortTypes; - public Sort(Source source, List sortByCols, List sortTypes) { + public Sort(Source source, List sortByExpressions, List sortTypes) { super(OperatorType.Sort, source); - if (sortByCols == null || sortByCols.isEmpty()) { + if (sortByExpressions == null || sortByExpressions.isEmpty()) { throw new IllegalArgumentException("sortBy shouldn't be null"); } if (sortTypes == null || sortTypes.isEmpty()) { throw new IllegalArgumentException("sortType shouldn't be null"); } - this.sortByCols = sortByCols; + this.sortByExpressions = sortByExpressions; + this.sortByCols = + sortByExpressions.stream().map(Expression::getColumnName).collect(Collectors.toList()); this.sortTypes = sortTypes; } + public List getSortByExpressions() { + return sortByExpressions; + } + public List getSortByCols() { return sortByCols; } @@ -61,12 +71,20 @@ public List getAscendingList() { @Override public Operator copy() { - return new Sort(getSource().copy(), new ArrayList<>(sortByCols), new ArrayList<>(sortTypes)); + List copySortByExpressions = new ArrayList<>(sortByExpressions.size()); + for (Expression expression : sortByExpressions) { + copySortByExpressions.add(ExprUtils.copy(expression)); + } + return new Sort(getSource().copy(), copySortByExpressions, new ArrayList<>(sortTypes)); } @Override public UnaryOperator copyWithSource(Source source) { - return new Sort(source, new ArrayList<>(sortByCols), new ArrayList<>(sortTypes)); + List copySortByExpressions = new ArrayList<>(sortByExpressions.size()); + for (Expression expression : sortByExpressions) { + copySortByExpressions.add(ExprUtils.copy(expression)); + } + return new Sort(source, copySortByExpressions, new ArrayList<>(sortTypes)); } public enum SortType { @@ -91,6 +109,14 @@ public boolean equals(Object object) { return false; } Sort sort = (Sort) object; - return sortByCols.equals(sort.sortByCols) && sortTypes.equals(sort.sortTypes); + if (this.sortByExpressions.size() != sort.sortByExpressions.size()) { + return false; + } + for (int i = 0; i < this.sortByExpressions.size(); i++) { + if (!this.sortByExpressions.get(i).equalExceptAlias(sort.sortByExpressions.get(i))) { + return false; + } + } + return sortTypes.equals(sort.sortTypes); } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ExprFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ExprFilter.java index 5373acd746..2cbbce4f6a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ExprFilter.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/ExprFilter.java @@ -21,6 +21,7 @@ import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; +import java.util.Objects; public class ExprFilter implements Filter { @@ -81,4 +82,23 @@ public Filter copy() { public String toString() { return expressionA.getColumnName() + " " + Op.op2Str(op) + " " + expressionB.getColumnName(); } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExprFilter that = (ExprFilter) o; + return expressionA.equalExceptAlias(that.expressionA) + && op == that.op + && expressionB.equalExceptAlias(that.expressionB); + } + + @Override + public int hashCode() { + return Objects.hash(type, expressionA, expressionB, op); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index 42ac0bebf4..024d80883f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -53,6 +53,7 @@ import cn.edu.tsinghua.iginx.engine.shared.file.write.ExportCsv; import cn.edu.tsinghua.iginx.engine.shared.file.write.ExportFile; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.AndTagFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.BasePreciseTagFilter; @@ -89,6 +90,7 @@ import cn.edu.tsinghua.iginx.sql.SqlParser.FromClauseContext; import cn.edu.tsinghua.iginx.sql.SqlParser.FunctionContext; import cn.edu.tsinghua.iginx.sql.SqlParser.GroupByClauseContext; +import cn.edu.tsinghua.iginx.sql.SqlParser.GroupByItemContext; import cn.edu.tsinghua.iginx.sql.SqlParser.ImportFileClauseContext; import cn.edu.tsinghua.iginx.sql.SqlParser.InsertFromFileStatementContext; import cn.edu.tsinghua.iginx.sql.SqlParser.InsertFullPathSpecContext; @@ -103,6 +105,7 @@ import cn.edu.tsinghua.iginx.sql.SqlParser.OrPreciseExpressionContext; import cn.edu.tsinghua.iginx.sql.SqlParser.OrTagExpressionContext; import cn.edu.tsinghua.iginx.sql.SqlParser.OrderByClauseContext; +import cn.edu.tsinghua.iginx.sql.SqlParser.OrderItemContext; import cn.edu.tsinghua.iginx.sql.SqlParser.ParamContext; import cn.edu.tsinghua.iginx.sql.SqlParser.PathContext; import cn.edu.tsinghua.iginx.sql.SqlParser.PreciseTagExpressionContext; @@ -130,7 +133,7 @@ import cn.edu.tsinghua.iginx.sql.SqlParser.ShowReplicationStatementContext; import cn.edu.tsinghua.iginx.sql.SqlParser.ShowRulesStatementContext; import cn.edu.tsinghua.iginx.sql.SqlParser.ShowSessionIDStatementContext; -import cn.edu.tsinghua.iginx.sql.SqlParser.SimipleCaseContext; +import cn.edu.tsinghua.iginx.sql.SqlParser.SimpleCaseContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SimpleWhenClauseContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SpecialClauseContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SqlStatementContext; @@ -160,6 +163,7 @@ import cn.edu.tsinghua.iginx.sql.utils.ExpressionUtils; import cn.edu.tsinghua.iginx.thrift.*; import cn.edu.tsinghua.iginx.utils.Pair; +import cn.edu.tsinghua.iginx.utils.StringUtils; import cn.edu.tsinghua.iginx.utils.TimeUtils; import java.util.*; import java.util.stream.Collectors; @@ -1180,8 +1184,8 @@ private Expression parseBaseExpression( private Expression parseCaseWhenExpression( CaseSpecificationContext ctx, UnarySelectStatement selectStatement) { - if (ctx.simipleCase() != null) { - return parseSimpleCase(ctx.simipleCase(), selectStatement); + if (ctx.simpleCase() != null) { + return parseSimpleCase(ctx.simpleCase(), selectStatement); } else if (ctx.searchedCase() != null) { return parseSearchedCase(ctx.searchedCase(), selectStatement); } else { @@ -1190,7 +1194,7 @@ private Expression parseCaseWhenExpression( } private CaseWhenExpression parseSimpleCase( - SimipleCaseContext ctx, UnarySelectStatement selectStatement) { + SimpleCaseContext ctx, UnarySelectStatement selectStatement) { List conditions = new ArrayList<>(); List results = new ArrayList<>(); Expression leftExpr = parseExpression(ctx.expression(), selectStatement).get(0); @@ -1328,41 +1332,104 @@ private void parseDownsampleClause( } private void parseGroupByClause(GroupByClauseContext ctx, UnarySelectStatement selectStatement) { - if (ExprUtils.hasCaseWhen(selectStatement.getExpressions())) { - throw new SQLParserException( - "CASE WHEN is not supported to be selected when sql has GROUP BY."); - } selectStatement.setHasGroupBy(true); + for (GroupByItemContext groupByItemContext : ctx.groupByItem()) { + Expression groupByExpr = parseGroupByItem(groupByItemContext, selectStatement); + selectStatement.setGroupByExpr(groupByExpr); + } - ctx.path() - .forEach( - pathContext -> { - String path = parsePath(pathContext); - // 如果查询语句的FROM子句只有一个部分且FROM一个前缀,则GROUP BY后的path只用写出后缀 - if (selectStatement.isFromSinglePath()) { - path = selectStatement.getFromPart(0).getPrefix() + SQLConstant.DOT + path; - } - if (path.contains("*")) { - throw new SQLParserException( - String.format("GROUP BY path '%s' has '*', which is not supported.", path)); - } - selectStatement.setGroupByPath(path); - String originPath = selectStatement.getOriginPath(path); - if (originPath != null) { - selectStatement.addGroupByPath(originPath); - } - }); - + // 检查SELECT子句中未被聚合的列是否在GROUP BY子句中出现 selectStatement - .getBaseExpressionList(true) + .getExpressions() .forEach( - expr -> { - if (!selectStatement.getGroupByPaths().contains(expr.getPathName())) { - throw new SQLParserException("Selected path must exist in group by clause."); + selectExpr -> { + if (ExpressionUtils.getExprMappingType(selectExpr) == MappingType.RowMapping) { + boolean foundInGroupBy = false; + for (int i = 0; i < selectStatement.getGroupByExpressions().size(); i++) { + Expression groupByExpr = selectStatement.getGroupByExpressions().get(i); + if (selectExpr.equalExceptAlias(groupByExpr)) { + selectStatement.getGroupByExpressions().set(i, selectExpr); + foundInGroupBy = true; + break; + } + } + if (!foundInGroupBy) { + throw new SQLParserException( + String.format( + "Selected expression '%s' does not exist in GROUP BY clause.", + selectExpr.getColumnName())); + } } }); } + private Expression parseGroupByItem( + GroupByItemContext ctx, UnarySelectStatement selectStatement) { + if (ctx.path() != null) { + String path = parsePath(ctx.path()); + if (path.contains("*")) { + throw new SQLParserException( + String.format("GROUP BY column '%s' has '*', which is not supported.", path)); + } + + String fullPath = path; + // 如果查询语句的FROM子句只有一个部分且FROM一个前缀,则GROUP BY后的path只用写出后缀 + if (selectStatement.isFromSinglePath()) { + fullPath = selectStatement.getFromPart(0).getPrefix() + SQLConstant.DOT + path; + } + + Set groupByExprSet = new HashSet<>(); + for (Expression selectExpr : selectStatement.getExpressions()) { + if (selectExpr.getColumnName().equals(fullPath)) { // 直接匹配select表达式 + groupByExprSet.add(selectExpr); + continue; + } + if (selectExpr.getAlias().equals(path)) { // 根据别名匹配select表达式 + groupByExprSet.add(selectExpr); + } + } + + // 匹配到了多个select表达式 + if (groupByExprSet.size() > 1) { + throw new SQLParserException(String.format("GROUP BY column '%s' is ambiguous.", path)); + } + + String originPath = selectStatement.getOriginPath(fullPath); + if (originPath != null) { + selectStatement.addGroupByPath(originPath); + } + + // GROUP BY的列没有出现在SELECT子句中 + if (groupByExprSet.isEmpty()) { + return new BaseExpression(fullPath); + } else { + return groupByExprSet.iterator().next(); + } + } else { + assert ctx.expression() != null; + if (ctx.expression().subquery() != null) { + throw new SQLParserException("Subquery is not supported in GROUP BY columns."); + } + Expression expr = parseExpression(ctx.expression(), selectStatement, false).get(0); + MappingType type = ExpressionUtils.getExprMappingType(expr); + if (type == MappingType.SetMapping || type == MappingType.Mapping) { + throw new SQLParserException("GROUP BY column can not use SetToSet/SetToRow functions."); + } + + // 查找需要加入到pathSet的path + List baseExpressions = + ExpressionUtils.getBaseExpressionList(Collections.singletonList(expr), false); + baseExpressions.forEach( + baseExpression -> { + String originPath = selectStatement.getOriginPath(baseExpression.getPathName()); + if (originPath != null) { + selectStatement.addGroupByPath(originPath); + } + }); + return expr; + } + } + // like standard SQL, limit N, M means limit M offset N private void parseLimitClause(LimitClauseContext ctx, SelectStatement selectStatement) { Pair p = getLimitAndOffsetFromCtx(ctx); @@ -1397,7 +1464,7 @@ private Pair getLimitAndOffsetFromCtx(LimitClauseContext ctx) private void parseOrderByClause(OrderByClauseContext ctx, SelectStatement selectStatement) { if (ctx.KEY() != null) { - selectStatement.setOrderByPath(SQLConstant.KEY); + selectStatement.setOrderByExpr(new KeyExpression(SQLConstant.KEY)); selectStatement.setAscending(ctx.DESC() == null); } if (ctx.orderItem() != null) { @@ -1407,23 +1474,86 @@ private void parseOrderByClause(OrderByClauseContext ctx, SelectStatement select } } - private void parseOrderItem(SqlParser.OrderItemContext ctx, SelectStatement selectStatement) { - String suffix = parsePath(ctx.path()); - String orderByPath = suffix; - if (selectStatement.getSelectType() == SelectStatement.SelectStatementType.UNARY) { - UnarySelectStatement unarySelectStatement = (UnarySelectStatement) selectStatement; - String prefix = unarySelectStatement.getFromPart(0).getPrefix(); + private void parseOrderItem(OrderItemContext ctx, SelectStatement selectStatement) { + UnarySelectStatement statement = selectStatement.getFirstUnarySelectStatement(); + if (ctx.path() != null) { + String path = parsePath(ctx.path()); + + Set orderByExprSet = new HashSet<>(); + if (path.contains("*")) { + throw new SQLParserException( + String.format("ORDER BY column '%s' has '*', which is not supported.", path)); + } + String fullPath = path; // 如果查询语句的FROM子句只有一个部分且FROM一个前缀,则ORDER BY后的path只用写出后缀 - if (unarySelectStatement.isFromSinglePath()) { - orderByPath = prefix + SQLConstant.DOT + suffix; + if (statement.isFromSinglePath()) { + fullPath = statement.getFromPart(0).getPrefix() + SQLConstant.DOT + path; } + + for (Expression selectExpr : selectStatement.getExpressions()) { + if (StringUtils.match(fullPath, selectExpr.getColumnName())) { // 直接匹配select表达式 + orderByExprSet.add(new BaseExpression(fullPath)); + continue; + } + if (selectExpr.getAlias().equals(path)) { // 根据别名匹配select表达式 + orderByExprSet.add(selectExpr); + } + } + + // 匹配到了多个select表达式 + if (orderByExprSet.size() > 1) { + throw new SQLParserException(String.format("ORDER BY column '%s' is ambiguous.", path)); + } + + String originPath = selectStatement.getOriginPath(path); + if (originPath != null) { + ((UnarySelectStatement) selectStatement).addOrderByPath(originPath); + } + + // ORDER BY的表达式没有出现在SELECT子句中 + if (orderByExprSet.isEmpty()) { + selectStatement.setOrderByExpr(new BaseExpression(fullPath)); + } else { + selectStatement.setOrderByExpr(orderByExprSet.iterator().next()); + } + } else { + assert ctx.expression() != null; + if (ctx.expression().subquery() != null) { + throw new SQLParserException("Subquery is not supported in ORDER BY columns."); + } + Expression expr = parseExpression(ctx.expression(), statement, false).get(0); + MappingType type = ExpressionUtils.getExprMappingType(expr); + if (type == MappingType.SetMapping || type == MappingType.Mapping) { + throw new SQLParserException("ORDER BY column can not use SetToSet/SetToRow functions."); + } + + // 在SELECT子句中查找相同的表达式,替换ORDER BY中的表达式,避免重复计算(主要是case when) + boolean foundInSelect = false; + for (Expression selectExpr : selectStatement.getExpressions()) { + if (ExpressionUtils.getExprMappingType(selectExpr) == MappingType.RowMapping + && selectExpr.equalExceptAlias(expr)) { + selectStatement.setOrderByExpr(selectExpr); + foundInSelect = true; + break; + } + } + if (!foundInSelect) { + selectStatement.setOrderByExpr(expr); + } + + // 查找需要加入到pathSet的path + List baseExpressions = + ExpressionUtils.getBaseExpressionList(Collections.singletonList(expr), false); + baseExpressions.forEach( + baseExpression -> { + String originPath = selectStatement.getOriginPath(baseExpression.getPathName()); + if (originPath != null) { + ((UnarySelectStatement) selectStatement).addOrderByPath(originPath); + } + }); } - if (orderByPath.contains("*")) { - throw new SQLParserException( - String.format("ORDER BY path '%s' has '*', which is not supported.", orderByPath)); - } - selectStatement.setOrderByPath(orderByPath); + selectStatement.setAscending(ctx.DESC() == null); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java index e95b688d1e..dd6eb2f9e3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/BinarySelectStatement.java @@ -69,6 +69,11 @@ public List getExpressions() { return leftQuery.getExpressions(); } + @Override + public UnarySelectStatement getFirstUnarySelectStatement() { + return leftQuery.getFirstUnarySelectStatement(); + } + @Override public Set getPathSet() { Set pathSet = new HashSet<>(leftQuery.getPathSet()); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java index f88cd336ce..c208d17c07 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/SelectStatement.java @@ -84,12 +84,18 @@ public boolean isSubQuery() { public abstract Set getPathSet(); - public List getOrderByPaths() { - return orderByClause.getOrderByPaths(); + public abstract UnarySelectStatement getFirstUnarySelectStatement(); + + public String getOriginPath(String path) { + return null; + } + + public List getOrderByExpressions() { + return orderByClause.getOrderByExpressions(); } - public void setOrderByPath(String orderByPath) { - this.orderByClause.setOrderByPaths(orderByPath); + public void setOrderByExpr(Expression orderByExpr) { + this.orderByClause.setOrderByExpr(orderByExpr); } public List getAscendingList() { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java index f7c02ea093..ae166232ba 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/UnarySelectStatement.java @@ -23,7 +23,6 @@ import static cn.edu.tsinghua.iginx.sql.SQLConstant.L_PARENTHESES; import static cn.edu.tsinghua.iginx.sql.SQLConstant.R_PARENTHESES; -import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils; import cn.edu.tsinghua.iginx.engine.shared.expr.*; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; @@ -242,12 +241,7 @@ public List getBaseExpressionList() { * @return BaseExpression列表 */ public List getBaseExpressionList(boolean exceptFunc) { - List paths = ExprUtils.getPathFromExprList(getExpressions(), exceptFunc); - List baseExpressionList = new ArrayList<>(paths.size()); - for (String path : paths) { - baseExpressionList.add(new BaseExpression(path)); - } - return baseExpressionList; + return ExpressionUtils.getBaseExpressionList(getExpressions(), exceptFunc); } public List getSequenceExpressionList() { @@ -261,6 +255,7 @@ public Set getPathSet() { pathSet.addAll(whereClause.getPathSet()); pathSet.addAll(groupByClause.getPathSet()); pathSet.addAll(havingClause.getPathSet()); + pathSet.addAll(orderByClause.getPathSet()); return pathSet; } @@ -280,6 +275,10 @@ public void addHavingPath(String path) { havingClause.addPath(path); } + public void addOrderByPath(String path) { + orderByClause.addPath(path); + } + public List getSelectSubQueryParts() { return selectClause.getSelectSubQueryParts(); } @@ -308,8 +307,8 @@ public void addWhereSubQueryPart(SubQueryFromPart whereSubQueryPart) { whereClause.addWhereSubQueryPart(whereSubQueryPart); } - public void setGroupByPath(String path) { - this.groupByClause.addGroupByPath(path); + public void setGroupByExpr(Expression expression) { + this.groupByClause.addGroupByExpression(expression); } public List getHavingSubQueryParts() { @@ -320,12 +319,12 @@ public void addHavingSubQueryPart(SubQueryFromPart havingSubQueryPart) { this.havingClause.addHavingSubQueryPart(havingSubQueryPart); } - public List getGroupByPaths() { - return groupByClause.getGroupByPaths(); + public List getGroupByExpressions() { + return groupByClause.getGroupByExpressions(); } - public void setOrderByPath(String orderByPath) { - this.orderByClause.setOrderByPaths(orderByPath); + public void setOrderByExpr(Expression orderByExpr) { + super.setOrderByExpr(orderByExpr); } public Filter getFilter() { @@ -402,6 +401,11 @@ public List getExpressions() { return new ArrayList<>(selectClause.getExpressions()); } + @Override + public UnarySelectStatement getFirstUnarySelectStatement() { + return this; + } + public void addSelectClauseExpression(Expression expression) { selectClause.addExpression(expression); } @@ -454,6 +458,11 @@ public List> getSubQueryAliasList(String alias) { public boolean needRowTransform() { for (Expression expression : getExpressions()) { + if (getQueryType() == QueryType.GroupByQuery + && groupByClause.getGroupByExpressions().stream() + .anyMatch(e -> e.equalExceptAlias(expression))) { + continue; + } if (expression.getType().equals(Expression.ExpressionType.Function)) { FuncExpression funcExpression = (FuncExpression) expression; if (FunctionUtils.isRowToRowFunction(funcExpression.getFuncName())) { @@ -653,16 +662,13 @@ public void checkQueryType() { Set typeList = new HashSet<>(); for (Expression expression : getExpressions()) { - typeList.add(getExprMappingType(expression)); + typeList.add(ExpressionUtils.getExprMappingType(expression)); } typeList.remove(null); if (hasGroupBy()) { if (typeList.contains(MappingType.Mapping)) { throw new SQLParserException("Group by can not use SetToSet functions."); - } else if (typeList.contains(MappingType.RowMapping) - && !getTargetTypeFuncExprList(MappingType.RowMapping).isEmpty()) { - throw new SQLParserException("Group by can not use RowToRow functions."); } setQueryType(QueryType.GroupByQuery); return; @@ -710,93 +716,6 @@ private static boolean isNeedNoPath(Expression expression) { return ExpressionUtils.isConstantArithmeticExpr(expression); } - /** - * 判断Expression的FuncExpression的映射类型 - * - * @param expression 给定Expression - * @return Expression的函数映射类型。若为ConstantExpression,返回null - */ - private MappingType getExprMappingType(Expression expression) { - switch (expression.getType()) { - case Constant: - case Sequence: - case FromValue: - return null; - case Base: - case Key: - case CaseWhen: - return MappingType.RowMapping; // case-when视为RowMapping函数 - case Unary: - return getExprMappingType(((UnaryExpression) expression).getExpression()); - case Bracket: - return getExprMappingType(((BracketExpression) expression).getExpression()); - case Function: - FuncExpression funcExpr = (FuncExpression) expression; - MappingType funcMappingType = FunctionUtils.getFunctionMappingType(funcExpr.getFuncName()); - Set childTypeSet = new HashSet<>(); - MappingType retType = funcMappingType; - for (Expression child : funcExpr.getExpressions()) { - MappingType childType = getExprMappingType(child); - childTypeSet.add(childType); - if (funcMappingType == MappingType.SetMapping) { - if (childType != null && childType != MappingType.RowMapping) { - throw new SQLParserException( - "SetToRow functions can not be nested with SetToSet/SetToRow functions."); - } - } else if (funcMappingType == MappingType.Mapping) { - if (childType != null && childType != MappingType.RowMapping) { - throw new SQLParserException( - "SetToSet functions can not be nested with SetToSet/SetToRow functions."); - } - } else { - if (childType != null) { - retType = childType; - } - } - } - childTypeSet.remove(null); - if (childTypeSet.size() > 1) { - throw new SQLParserException( - "SetToSet/SetToRow/RowToRow functions can not be mixed in function params."); - } - return retType; - case Binary: - BinaryExpression binaryExpr = (BinaryExpression) expression; - MappingType leftType = getExprMappingType(binaryExpr.getLeftExpression()); - MappingType rightType = getExprMappingType(binaryExpr.getRightExpression()); - if (leftType != null && rightType != null) { - if (leftType != rightType) { - throw new SQLParserException( - "SetToSet/SetToRow/RowToRow functions can not be mixed in BinaryExpression."); - } - return leftType; - } - if (leftType == null) { - return rightType; - } - return leftType; - case Multiple: - MultipleExpression multipleExpr = (MultipleExpression) expression; - Set typeSet = new HashSet<>(); - for (Expression child : multipleExpr.getChildren()) { - MappingType childType = getExprMappingType(child); - if (childType != null) { - typeSet.add(childType); - } - } - if (typeSet.size() == 1) { - return typeSet.iterator().next(); - } else if (typeSet.size() > 1) { - throw new SQLParserException( - "SetToSet/SetToRow/RowToRow functions can not be mixed in MultipleExpression."); - } else { - return null; - } - default: - throw new SQLParserException("Unknown expression type: " + expression.getType()); - } - } - public enum QueryType { Unknown, SimpleQuery, diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/GroupByClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/GroupByClause.java index 6c9e177241..673c9892d7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/GroupByClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/GroupByClause.java @@ -19,6 +19,7 @@ */ package cn.edu.tsinghua.iginx.sql.statement.select.subclause; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import cn.edu.tsinghua.iginx.sql.statement.select.UnarySelectStatement.QueryType; import java.util.ArrayList; import java.util.HashSet; @@ -29,26 +30,26 @@ public class GroupByClause { private boolean hasDownsample; private boolean hasGroupBy; private QueryType queryType; - private final List groupByPaths; + private final List groupByExpressions; private final Set pathSet; private long precision; private long slideDistance; public GroupByClause() { - groupByPaths = new ArrayList<>(); + groupByExpressions = new ArrayList<>(); pathSet = new HashSet<>(); hasDownsample = false; hasGroupBy = false; queryType = QueryType.Unknown; } - public void addGroupByPath(String path) { - groupByPaths.add(path); + public void addGroupByExpression(Expression expression) { + groupByExpressions.add(expression); hasGroupBy = true; } - public List getGroupByPaths() { - return groupByPaths; + public List getGroupByExpressions() { + return groupByExpressions; } public boolean hasDownsample() { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/OrderByClause.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/OrderByClause.java index a8e33c5d72..e5c0df21ce 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/OrderByClause.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/select/subclause/OrderByClause.java @@ -19,25 +19,31 @@ */ package cn.edu.tsinghua.iginx.sql.statement.select.subclause; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; public class OrderByClause { - private final List orderByPaths; + private final List orderByExpressions; private final List ascendingList; + private final Set pathSet; - public OrderByClause(List orderByPaths, List ascendingList) { - this.orderByPaths = orderByPaths; + public OrderByClause(List orderByExpressions, List ascendingList) { + this.orderByExpressions = orderByExpressions; this.ascendingList = ascendingList; + this.pathSet = new HashSet<>(); } public OrderByClause() { - this.orderByPaths = new ArrayList<>(); + this.orderByExpressions = new ArrayList<>(); this.ascendingList = new ArrayList<>(); + this.pathSet = new HashSet<>(); } - public List getOrderByPaths() { - return orderByPaths; + public List getOrderByExpressions() { + return orderByExpressions; } public List getAscendingList() { @@ -48,7 +54,15 @@ public void setAscendingList(boolean ascending) { this.ascendingList.add(ascending); } - public void setOrderByPaths(String orderByPath) { - this.orderByPaths.add(orderByPath); + public void setOrderByExpr(Expression orderByExpr) { + this.orderByExpressions.add(orderByExpr); + } + + public Set getPathSet() { + return pathSet; + } + + public void addPath(String path) { + pathSet.add(path); } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java index 0d4b05dea8..5c9616ea64 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/utils/ExpressionUtils.java @@ -19,6 +19,8 @@ */ package cn.edu.tsinghua.iginx.sql.utils; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; +import cn.edu.tsinghua.iginx.engine.shared.expr.BaseExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.BinaryExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.BracketExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; @@ -26,6 +28,13 @@ import cn.edu.tsinghua.iginx.engine.shared.expr.MultipleExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.Operator; import cn.edu.tsinghua.iginx.engine.shared.expr.UnaryExpression; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; +import cn.edu.tsinghua.iginx.sql.exception.SQLParserException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; public class ExpressionUtils { @@ -74,4 +83,108 @@ public static String transformToBaseExpr(Expression expression) { return null; } } + + /** + * 从expressions中获取所有的BaseExpression + * + * @param expressions Expression列表 + * @param exceptFunc 是否不包括FuncExpression参数中的BaseExpression + * @return BaseExpression列表 + */ + public static List getBaseExpressionList( + List expressions, boolean exceptFunc) { + List paths = ExprUtils.getPathFromExprList(expressions, exceptFunc); + List baseExpressionList = new ArrayList<>(paths.size()); + for (String path : paths) { + baseExpressionList.add(new BaseExpression(path)); + } + return baseExpressionList; + } + + /** + * 判断Expression的FuncExpression的映射类型 + * + * @param expression 给定Expression + * @return Expression的函数映射类型。若为ConstantExpression,返回null + */ + public static MappingType getExprMappingType(Expression expression) { + switch (expression.getType()) { + case Constant: + case Sequence: + case FromValue: + return null; + case Base: + case Key: + case CaseWhen: + return MappingType.RowMapping; // case-when视为RowMapping函数 + case Unary: + return getExprMappingType(((UnaryExpression) expression).getExpression()); + case Bracket: + return getExprMappingType(((BracketExpression) expression).getExpression()); + case Function: + FuncExpression funcExpr = (FuncExpression) expression; + MappingType funcMappingType = FunctionUtils.getFunctionMappingType(funcExpr.getFuncName()); + Set childTypeSet = new HashSet<>(); + MappingType retType = funcMappingType; + for (Expression child : funcExpr.getExpressions()) { + MappingType childType = getExprMappingType(child); + childTypeSet.add(childType); + if (funcMappingType == MappingType.SetMapping) { + if (childType != null && childType != MappingType.RowMapping) { + throw new SQLParserException( + "SetToRow functions can not be nested with SetToSet/SetToRow functions."); + } + } else if (funcMappingType == MappingType.Mapping) { + if (childType != null && childType != MappingType.RowMapping) { + throw new SQLParserException( + "SetToSet functions can not be nested with SetToSet/SetToRow functions."); + } + } else { + if (childType != null) { + retType = childType; + } + } + } + childTypeSet.remove(null); + if (childTypeSet.size() > 1) { + throw new SQLParserException( + "SetToSet/SetToRow/RowToRow functions can not be mixed in function params."); + } + return retType; + case Binary: + BinaryExpression binaryExpr = (BinaryExpression) expression; + MappingType leftType = getExprMappingType(binaryExpr.getLeftExpression()); + MappingType rightType = getExprMappingType(binaryExpr.getRightExpression()); + if (leftType != null && rightType != null) { + if (leftType != rightType) { + throw new SQLParserException( + "SetToSet/SetToRow/RowToRow functions can not be mixed in BinaryExpression."); + } + return leftType; + } + if (leftType == null) { + return rightType; + } + return leftType; + case Multiple: + MultipleExpression multipleExpr = (MultipleExpression) expression; + Set typeSet = new HashSet<>(); + for (Expression child : multipleExpr.getChildren()) { + MappingType childType = getExprMappingType(child); + if (childType != null) { + typeSet.add(childType); + } + } + if (typeSet.size() == 1) { + return typeSet.iterator().next(); + } else if (typeSet.size() > 1) { + throw new SQLParserException( + "SetToSet/SetToRow/RowToRow functions can not be mixed in MultipleExpression."); + } else { + return null; + } + default: + throw new SQLParserException("Unknown expression type: " + expression.getType()); + } + } } diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java index ae87684f02..cdf31c993c 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/AbstractOperatorMemoryExecutorTest.java @@ -28,7 +28,6 @@ import cn.edu.tsinghua.iginx.engine.physical.exception.InvalidOperatorParameterException; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; -import cn.edu.tsinghua.iginx.engine.shared.Constants; import cn.edu.tsinghua.iginx.engine.shared.KeyRange; import cn.edu.tsinghua.iginx.engine.shared.data.Value; import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; @@ -36,6 +35,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; import cn.edu.tsinghua.iginx.engine.shared.expr.BaseExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.KeyExpression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.system.Avg; @@ -67,6 +67,7 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.type.JoinAlgType; import cn.edu.tsinghua.iginx.engine.shared.operator.type.OuterJoinType; import cn.edu.tsinghua.iginx.engine.shared.source.EmptySource; +import cn.edu.tsinghua.iginx.sql.SQLConstant; import cn.edu.tsinghua.iginx.thrift.DataType; import java.util.ArrayList; import java.util.Arrays; @@ -2178,7 +2179,7 @@ public void testSortByTimeAsc() throws PhysicalException { Sort sort = new Sort( EmptySource.EMPTY_SOURCE, - Collections.singletonList(Constants.KEY), + Collections.singletonList(new KeyExpression(SQLConstant.KEY)), Collections.singletonList(Sort.SortType.ASC)); RowStream stream = getExecutor().executeUnaryOperator(sort, table, null); assertEquals(table.getHeader(), stream.getHeader()); @@ -2199,7 +2200,7 @@ public void testSortByTimeDesc() throws PhysicalException { Sort sort = new Sort( EmptySource.EMPTY_SOURCE, - Collections.singletonList(Constants.KEY), + Collections.singletonList(new KeyExpression(SQLConstant.KEY)), Collections.singletonList(Sort.SortType.DESC)); RowStream stream = getExecutor().executeUnaryOperator(sort, copyTable, null); assertEquals(table.getHeader(), stream.getHeader()); diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java index 6ee961dbb3..ee6d4b3d81 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java @@ -23,7 +23,9 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import cn.edu.tsinghua.iginx.engine.shared.expr.BaseExpression; import cn.edu.tsinghua.iginx.engine.shared.expr.FuncExpression; +import cn.edu.tsinghua.iginx.engine.shared.expr.KeyExpression; import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.PathFilter; @@ -145,12 +147,19 @@ public void testParseSpecialClause() { String orderBy = "SELECT a FROM test ORDER BY KEY"; statement = (UnarySelectStatement) TestUtils.buildStatement(orderBy); - assertEquals(Collections.singletonList(SQLConstant.KEY), statement.getOrderByPaths()); + assertEquals(1, statement.getOrderByExpressions().size()); + assertTrue( + statement + .getOrderByExpressions() + .get(0) + .equalExceptAlias(new KeyExpression(SQLConstant.KEY))); assertTrue(statement.getAscendingList().get(0)); String orderByAndLimit = "SELECT a FROM test ORDER BY a DESC LIMIT 10 OFFSET 5;"; statement = (UnarySelectStatement) TestUtils.buildStatement(orderByAndLimit); - assertEquals(Collections.singletonList("test.a"), statement.getOrderByPaths()); + assertEquals(1, statement.getOrderByExpressions().size()); + assertTrue( + statement.getOrderByExpressions().get(0).equalExceptAlias(new BaseExpression("test.a"))); assertFalse(statement.getAscendingList().get(0)); assertEquals(5, statement.getOffset()); assertEquals(10, statement.getLimit()); diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java index 318ef1951b..909b54e9e2 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java @@ -19,13 +19,19 @@ */ package cn.edu.tsinghua.iginx.logical.optimizer.rules; +import static cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr.ARITHMETIC_EXPR; + import cn.edu.tsinghua.iginx.engine.logical.utils.OperatorUtils; import cn.edu.tsinghua.iginx.engine.logical.utils.PathUtils; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.ExprUtils; import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils; import cn.edu.tsinghua.iginx.engine.shared.Constants; +import cn.edu.tsinghua.iginx.engine.shared.expr.Expression; +import cn.edu.tsinghua.iginx.engine.shared.expr.KeyExpression; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; +import cn.edu.tsinghua.iginx.engine.shared.function.manager.FunctionManager; import cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr; import cn.edu.tsinghua.iginx.engine.shared.function.system.First; import cn.edu.tsinghua.iginx.engine.shared.function.system.Last; @@ -52,6 +58,8 @@ public class ColumnPruningRule extends Rule { private static final Logger LOGGER = LoggerFactory.getLogger(ColumnPruningRule.class); + private static final FunctionManager functionManager = FunctionManager.getInstance(); + public ColumnPruningRule() { /* * we want to match the topology like: @@ -129,16 +137,23 @@ private void collectColumns( } else if (operator.getType() == OperatorType.GroupBy) { GroupBy groupBy = (GroupBy) operator; - newColumnList = groupBy.getGroupByCols(); - functionCallList = groupBy.getFunctionCallList(); + functionCallList = new ArrayList<>(groupBy.getFunctionCallList()); + for (Expression groupByExpr : groupBy.getGroupByExpressions()) { + functionCallList.add( + new FunctionCall( + functionManager.getFunction(ARITHMETIC_EXPR), new FunctionParams(groupByExpr))); + } } else if (operator.getType() == OperatorType.Downsample) { Downsample downsample = (Downsample) operator; functionCallList = downsample.getFunctionCallList(); } else if (operator.getType() == OperatorType.Sort) { Sort sort = (Sort) operator; - for (String column : sort.getSortByCols()) { - if (!column.equalsIgnoreCase(Constants.KEY)) { - columns.add(column); + functionCallList = new ArrayList<>(); + for (Expression sortByExpr : sort.getSortByExpressions()) { + if (!(sortByExpr instanceof KeyExpression)) { + functionCallList.add( + new FunctionCall( + functionManager.getFunction(ARITHMETIC_EXPR), new FunctionParams(sortByExpr))); } } } else if (operator.getType() == OperatorType.AddSchemaPrefix) { diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 4df995cdee..bf23ed33a0 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -2940,6 +2940,64 @@ public void testGroupByWithCaseWhen() { executor.executeAndCompare(query, expected); } + @Test + public void testGroupByAndOrderByExpr() { + String insert = + "INSERT INTO student(key, s_id, name, sex, age) VALUES " + + "(0, 1, \"Alan\", 1, 16), (1, 2, \"Bob\", 1, 14), (2, 3, \"Candy\", 0, 17), " + + "(3, 4, \"Alice\", 0, 22), (4, 5, \"Jack\", 1, 36), (5, 6, \"Tom\", 1, 20);"; + executor.execute(insert); + insert = + "INSERT INTO math(key, s_id, score) VALUES (0, 1, 82), (1, 2, 58), (2, 3, 54), (3, 4, 92), (4, 5, 78), (5, 6, 98);"; + executor.execute(insert); + + // use alias in GROUP BY and ORDER BY + String statement = + "SELECT avg(math.score) as avg_score, CASE student.sex WHEN 1 THEN 'Male' WHEN 0 THEN 'Female' ELSE 'Unknown' END AS strSex\n" + + "FROM student JOIN math ON student.s_id = math.s_id\n" + + "GROUP BY strSex ORDER BY strSex;"; + String expected = + "ResultSets:\n" + + "+---------+------+\n" + + "|avg_score|strSex|\n" + + "+---------+------+\n" + + "| 73.0|Female|\n" + + "| 79.0| Male|\n" + + "+---------+------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + // don't use alias in GROUP BY and ORDER BY + statement = + "SELECT avg(math.score) as avg_score, CASE student.sex WHEN 1 THEN 'Male' WHEN 0 THEN 'Female' ELSE 'Unknown' END AS strSex\n" + + "FROM student JOIN math ON student.s_id = math.s_id\n" + + "GROUP BY CASE student.sex WHEN 1 THEN 'Male' WHEN 0 THEN 'Female' ELSE 'Unknown' END\n" + + "ORDER BY CASE student.sex WHEN 1 THEN 'Male' WHEN 0 THEN 'Female' ELSE 'Unknown' END DESC;"; + expected = + "ResultSets:\n" + + "+---------+------+\n" + + "|avg_score|strSex|\n" + + "+---------+------+\n" + + "| 79.0| Male|\n" + + "| 73.0|Female|\n" + + "+---------+------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + statement = "SELECT s_id % 3 AS id, sum(score) FROM math GROUP BY id ORDER BY id;"; + expected = + "ResultSets:\n" + + "+--+---------------+\n" + + "|id|sum(math.score)|\n" + + "+--+---------------+\n" + + "| 0| 152|\n" + + "| 1| 174|\n" + + "| 2| 136|\n" + + "+--+---------------+\n" + + "Total line number = 3\n"; + executor.executeAndCompare(statement, expected); + } + @Test public void testJoinWithGroupBy() { String insert = @@ -6332,6 +6390,17 @@ public void testErrorClause() { errClause = "select s1 as key, s2 as key from us.d1;"; executor.executeAndCompareErrMsg( errClause, "Only one 'AS KEY' can be used in each select at most."); + + errClause = "select s1, s2 AS s1, count(s3) from us.d1 group by s1, s2;"; + executor.executeAndCompareErrMsg(errClause, "GROUP BY column 's1' is ambiguous."); + + errClause = "select s1, s2, count(s3) from us.d1 group by max(s1);"; + executor.executeAndCompareErrMsg( + errClause, "GROUP BY column can not use SetToSet/SetToRow functions."); + + errClause = "select s1, s2, count(s3) from us.d1 group by s1, s2 order by first(s1);"; + executor.executeAndCompareErrMsg( + errClause, "ORDER BY column can not use SetToSet/SetToRow functions."); } @Test diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java index 711f95a3cf..7653a86d48 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java @@ -679,6 +679,81 @@ public void testColumnExpand() { compareResult(expected, ret.getResultInString(false, "")); } + @Test + public void testUDFGroupByAndOrderByExpr() { + String insert = + "INSERT INTO test(key, s1, s2) VALUES (1, 2, 3), (2, 3, 1), (3, 2, 3), (4, 3, 7), (5, 3, 6), (6, 0, 4);"; + tool.execute(insert); + + List cosTestS1AfterGroupByExpectedValues = + Arrays.asList(-0.9899924966004454, -0.4161468365471424, 1.0); + List sumTestS2AfterGroupByExpectedValues = Arrays.asList(14L, 6L, 4L); + + String query = "SELECT cos(s1), sum(s2) FROM test GROUP BY cos(s1) ORDER BY cos(s1);"; + SessionExecuteSqlResult ret = tool.execute(query); + compareResult(2, ret.getPaths().size()); + compareResult("cos(test.s1)", ret.getPaths().get(0)); + compareResult("sum(test.s2)", ret.getPaths().get(1)); + for (int i = 0; i < ret.getValues().size(); i++) { + compareResult(2, ret.getValues().get(i).size()); + double expectedCosS1 = cosTestS1AfterGroupByExpectedValues.get(i); + double actualCosS1 = (double) ret.getValues().get(i).get(0); + compareResult(expectedCosS1, actualCosS1, delta); + long expectedSumS2 = sumTestS2AfterGroupByExpectedValues.get(i); + long actualSumS2 = (long) ret.getValues().get(i).get(1); + assertEquals(expectedSumS2, actualSumS2); + } + + query = "SELECT cos(s1) AS a, sum(s2) FROM test GROUP BY a ORDER BY a;"; + ret = tool.execute(query); + compareResult(2, ret.getPaths().size()); + compareResult("a", ret.getPaths().get(0)); + compareResult("sum(test.s2)", ret.getPaths().get(1)); + for (int i = 0; i < ret.getValues().size(); i++) { + compareResult(2, ret.getValues().get(i).size()); + double expectedCosS1 = cosTestS1AfterGroupByExpectedValues.get(i); + double actualCosS1 = (double) ret.getValues().get(i).get(0); + compareResult(expectedCosS1, actualCosS1, delta); + long expectedSumS2 = sumTestS2AfterGroupByExpectedValues.get(i); + long actualSumS2 = (long) ret.getValues().get(i).get(1); + assertEquals(expectedSumS2, actualSumS2); + } + + query = "SELECT s1, s2 FROM test ORDER BY cos(s1);"; + ret = tool.execute(query); + String expected = + "ResultSets:\n" + + "+---+-------+-------+\n" + + "|key|test.s1|test.s2|\n" + + "+---+-------+-------+\n" + + "| 2| 3| 1|\n" + + "| 4| 3| 7|\n" + + "| 5| 3| 6|\n" + + "| 1| 2| 3|\n" + + "| 3| 2| 3|\n" + + "| 6| 0| 4|\n" + + "+---+-------+-------+\n" + + "Total line number = 6\n"; + compareResult(expected, ret.getResultInString(false, "")); + + query = "SELECT s1, s2 FROM test ORDER BY pow(s2, 2);"; + ret = tool.execute(query); + expected = + "ResultSets:\n" + + "+---+-------+-------+\n" + + "|key|test.s1|test.s2|\n" + + "+---+-------+-------+\n" + + "| 2| 3| 1|\n" + + "| 1| 2| 3|\n" + + "| 3| 2| 3|\n" + + "| 6| 0| 4|\n" + + "| 5| 3| 6|\n" + + "| 4| 3| 7|\n" + + "+---+-------+-------+\n" + + "Total line number = 6\n"; + compareResult(expected, ret.getResultInString(false, "")); + } + @Test public void testUDFWithArgs() { String insert = @@ -819,6 +894,17 @@ public void testUDFWithArgsAndKvArgs() { compareResult(expected, ret.getResultInString(false, "")); } + @Test + public void testErrorClause() { + String errClause = "select s1, s2, count(s3) from us.d1 group by reverse_rows(s1);"; + tool.executeAndCompareErrMsg( + errClause, "GROUP BY column can not use SetToSet/SetToRow functions."); + + errClause = "select s1, s2, count(s3) from us.d1 group by s1, s2 order by transpose(s1);"; + tool.executeAndCompareErrMsg( + errClause, "ORDER BY column can not use SetToSet/SetToRow functions."); + } + void compareResult(Object expected, Object actual) { if (!needCompareResult) { return; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java index 72d3006eef..fb8fbc5bd0 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java @@ -141,6 +141,17 @@ void executeFail(String statement) { fail("Statement: \"{}\" execute without failure, which was not expected."); } + public void executeAndCompareErrMsg(String statement, String expectedErrMsg) { + LOGGER.info("Execute Statement: \"{}\"", statement); + + try { + session.executeSql(statement); + } catch (SessionException e) { + LOGGER.info("Statement: \"{}\" execute fail. Because: ", statement, e); + assertEquals(expectedErrMsg, e.getMessage()); + } + } + boolean isUDFRegistered(String udfName) { SessionExecuteSqlResult ret = execute(SHOW_FUNCTION_SQL); List registerUDFs = From 7f0b139de29fbdd8b9cd2ef3aeb86e2cd9f3a21f Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Thu, 24 Oct 2024 10:58:58 +0800 Subject: [PATCH 18/33] feat(sql): support use func with expr params in filter (#473) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持在filter里使用参数为表达式的函数 更新剩余TPC-H语句准备测试 --- .../antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 12 +- .../logical/generator/QueryGenerator.java | 6 +- .../logical/utils/LogicalFilterUtils.java | 15 + .../memory/execute/utils/ExprUtils.java | 12 +- .../memory/execute/utils/RowUtils.java | 4 +- .../shared/expr/ConstantExpression.java | 2 + .../engine/shared/expr/FuncExpression.java | 7 + .../engine/shared/function/FunctionUtils.java | 4 +- .../function/manager/FunctionManager.java | 2 + .../shared/function/system/SubString.java | 97 + .../function/system/utils/ValueUtils.java | 8 + .../tsinghua/iginx/sql/IginXSqlVisitor.java | 297 +- .../optimizer/rules/ColumnPruningRule.java | 23 +- .../edu/tsinghua/iginx/utils/ValueUtils.java | 8 + .../integration/func/sql/SQLSessionIT.java | 43 +- .../iginx/integration/func/udf/UDFIT.java | 29 + .../iginx/integration/tpch/TPCHUtils.java | 27 +- test/src/test/resources/testConfig.properties | 2 +- test/src/test/resources/tpch/queries/q10.sql | 60 +- test/src/test/resources/tpch/queries/q11.sql | 28 + test/src/test/resources/tpch/queries/q12.sql | 21 + test/src/test/resources/tpch/queries/q13.sql | 4 +- test/src/test/resources/tpch/queries/q14.sql | 9 + test/src/test/resources/tpch/queries/q15.sql | 30 + test/src/test/resources/tpch/queries/q16.sql | 87 +- test/src/test/resources/tpch/queries/q18.sql | 5 +- test/src/test/resources/tpch/queries/q19.sql | 121 +- .../src/test/resources/tpch/queries/q19_a.sql | 74 + test/src/test/resources/tpch/queries/q2.sql | 69 +- test/src/test/resources/tpch/queries/q21.sql | 4 +- test/src/test/resources/tpch/queries/q22.sql | 51 + test/src/test/resources/tpch/queries/q3.sql | 50 +- test/src/test/resources/tpch/queries/q5.sql | 52 +- test/src/test/resources/tpch/queries/q7.sql | 48 + test/src/test/resources/tpch/queries/q8.sql | 37 + test/src/test/resources/tpch/sf0.1/q10.csv | 40 +- test/src/test/resources/tpch/sf0.1/q11.csv | 2542 +++++++++++++++++ test/src/test/resources/tpch/sf0.1/q12.csv | 3 + test/src/test/resources/tpch/sf0.1/q14.csv | 2 + test/src/test/resources/tpch/sf0.1/q15.csv | 2 + test/src/test/resources/tpch/sf0.1/q2.csv | 88 +- test/src/test/resources/tpch/sf0.1/q20.csv | 18 +- test/src/test/resources/tpch/sf0.1/q22.csv | 8 + test/src/test/resources/tpch/sf0.1/q7.csv | 5 + test/src/test/resources/tpch/sf0.1/q8.csv | 3 + 45 files changed, 3568 insertions(+), 491 deletions(-) create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/SubString.java create mode 100644 test/src/test/resources/tpch/queries/q11.sql create mode 100644 test/src/test/resources/tpch/queries/q12.sql create mode 100644 test/src/test/resources/tpch/queries/q14.sql create mode 100644 test/src/test/resources/tpch/queries/q15.sql create mode 100644 test/src/test/resources/tpch/queries/q19_a.sql create mode 100644 test/src/test/resources/tpch/queries/q22.sql create mode 100644 test/src/test/resources/tpch/queries/q7.sql create mode 100644 test/src/test/resources/tpch/queries/q8.sql create mode 100644 test/src/test/resources/tpch/sf0.1/q11.csv create mode 100644 test/src/test/resources/tpch/sf0.1/q12.csv create mode 100644 test/src/test/resources/tpch/sf0.1/q14.csv create mode 100644 test/src/test/resources/tpch/sf0.1/q15.csv create mode 100644 test/src/test/resources/tpch/sf0.1/q22.csv create mode 100644 test/src/test/resources/tpch/sf0.1/q7.csv create mode 100644 test/src/test/resources/tpch/sf0.1/q8.csv diff --git a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 index d53365ed96..2356ac3a3a 100644 --- a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 +++ b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 @@ -187,8 +187,8 @@ andExpression ; predicate - : (KEY | path | functionName LR_BRACKET path RR_BRACKET) comparisonOperator constant - | constant comparisonOperator (KEY | path | functionName LR_BRACKET path RR_BRACKET) + : (KEY | path) comparisonOperator constant + | constant comparisonOperator (KEY | path) | path comparisonOperator path | path OPERATOR_NOT? stringLikeOperator regex = stringLiteral | OPERATOR_NOT? LR_BRACKET orExpression RR_BRACKET @@ -198,11 +198,11 @@ predicate predicateWithSubquery : OPERATOR_NOT? EXISTS subquery - | (path | constant | functionName LR_BRACKET path RR_BRACKET) OPERATOR_NOT? IN subquery - | (path | constant | functionName LR_BRACKET path RR_BRACKET) comparisonOperator quantifier subquery - | (path | constant | functionName LR_BRACKET path RR_BRACKET) comparisonOperator subquery - | subquery comparisonOperator (path | constant | functionName LR_BRACKET path RR_BRACKET) + | (path | constant | expression) OPERATOR_NOT? IN subquery + | (path | constant | expression) comparisonOperator quantifier subquery | subquery comparisonOperator subquery + | (path | constant | expression) comparisonOperator subquery + | subquery comparisonOperator (path | constant | expression) ; quantifier diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java index f9df71de14..984ecbf0bb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java @@ -238,7 +238,9 @@ private static void checkSubQueryHasFreeVariables(UnarySelectStatement selectSta selectStatement.initFreeVariables(); List freeVariables = selectStatement.getFreeVariables(); if (!freeVariables.isEmpty()) { - throw new RuntimeException("Unexpected paths' name: " + freeVariables + "."); + throw new RuntimeException( + String.format( + "Unexpected paths' name: %s, check if there exists missing prefix.", freeVariables)); } } @@ -733,7 +735,7 @@ private static Operator buildReorder(UnarySelectStatement selectStatement, Opera if (selectStatement.isLastFirst()) { root = new Reorder(new OperatorSource(root), Arrays.asList("path", "value")); } else if (hasFuncWithArgs) { - root = new Reorder(new OperatorSource(root), Collections.singletonList("*")); + root = new Reorder(new OperatorSource(root), new ArrayList<>(Collections.singletonList("*"))); } else { List order = new ArrayList<>(); List isPyUDF = new ArrayList<>(); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java index bf44e11d68..e71b0b9fc5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java @@ -730,6 +730,21 @@ private static Filter setTrue(Filter filter, Predicate predicate) { return new BoolFilter(true); } return filter; + case Expr: + ExprFilter exprFilter = (ExprFilter) filter; + List pathAList = ExprUtils.getPathFromExpr(exprFilter.getExpressionA()); + List pathBList = ExprUtils.getPathFromExpr(exprFilter.getExpressionB()); + boolean pathAHasStar = pathAList.stream().anyMatch(s -> s.contains("*")); + boolean pathBHasStar = pathBList.stream().anyMatch(s -> s.contains("*")); + if (Op.isOrOp(((ExprFilter) filter).getOp()) && (pathAHasStar || pathBHasStar)) { + return new BoolFilter(true); + } + boolean matchPathA = pathAList.stream().allMatch(predicate); + boolean matchPathB = pathBList.stream().allMatch(predicate); + if (!matchPathA || !matchPathB) { + return new BoolFilter(true); + } + return filter; default: return filter; } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java index ca36ad1357..7bb627b4c4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java @@ -26,6 +26,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.expr.*; import cn.edu.tsinghua.iginx.engine.shared.function.Function; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionCall; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; import cn.edu.tsinghua.iginx.engine.shared.function.RowMappingFunction; @@ -130,14 +131,9 @@ private static Value calculateFuncExprNative(Row row, FuncExpression funcExpr) funcExpr.getArgs(), funcExpr.getKvargs(), funcExpr.isDistinct()); - Row ret; - try { - ret = rowMappingFunction.transform(row, params); - } catch (Exception e) { - throw new PhysicalTaskExecuteFailureException( - "encounter error when execute row mapping function " + rowMappingFunction.getIdentifier(), - e); - } + FunctionCall functionCall = new FunctionCall(rowMappingFunction, params); + + Row ret = RowUtils.calRowTransform(row, Collections.singletonList(functionCall), false); int retValueSize = ret.getValues().length; if (retValueSize != 1) { throw new InvalidOperatorParameterException( diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java index c03e601623..12f0892ded 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/RowUtils.java @@ -877,7 +877,7 @@ public static List cacheFilterResult(List rows, Filter filter) try { return FilterUtils.validate(filter, row); } catch (PhysicalException e) { - LOGGER.error("execute parallel filter error, cause by: ", e.getCause()); + LOGGER.error("execute parallel filter error, cause by: ", e); return false; } }) @@ -896,7 +896,7 @@ public static List cacheFilterResult(List rows, Filter filter) try { return FilterUtils.validate(filter, row); } catch (PhysicalException e) { - LOGGER.error("execute sequence filter error, cause by: ", e.getCause()); + LOGGER.error("execute sequence filter error, cause by: ", e); return false; } }) diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java index d0955f307b..66e084551b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/ConstantExpression.java @@ -44,6 +44,8 @@ public String getColumnName() { // 如果是小数,保留小数点后5位 if (value instanceof Double || value instanceof Float) { return String.format("%.5f", value); + } else if (value instanceof byte[]) { + return "'" + new String((byte[]) value) + "'"; } return value.toString(); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java index 9515b933c1..cdfb87f215 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/expr/FuncExpression.java @@ -20,6 +20,7 @@ package cn.edu.tsinghua.iginx.engine.shared.expr; import cn.edu.tsinghua.iginx.engine.shared.function.FunctionUtils; +import cn.edu.tsinghua.iginx.engine.shared.function.system.utils.ValueUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -98,6 +99,12 @@ public String getColumnName() { for (Expression expression : expressions) { columnName.append(expression.getColumnName()).append(", "); } + for (Object arg : args) { + columnName.append(ValueUtils.toString(arg)).append(", "); + } + for (Map.Entry kvarg : kvargs.entrySet()) { + columnName.append(kvarg.getValue()).append(", "); + } columnName.setLength(columnName.length() - 2); columnName.append(")"); return columnName.toString(); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java index d26b9c3ae0..137eb624bc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java @@ -53,7 +53,7 @@ public class FunctionUtils { private static final String VALUE = "value"; private static final Set sysRowToRowFunctionSet = - new HashSet<>(Collections.singletonList("ratio")); + new HashSet<>(Arrays.asList("ratio", "substring")); private static final Set sysSetToRowFunctionSet = new HashSet<>( @@ -165,6 +165,7 @@ public static String getFunctionName(Function function) { static Map expectedParamNumMap = new HashMap<>(); // 此Map用于存储function期望的参数个数 + // TODO static { expectedParamNumMap.put("avg", 1); expectedParamNumMap.put("sum", 1); @@ -176,6 +177,7 @@ public static String getFunctionName(Function function) { expectedParamNumMap.put("first", 1); expectedParamNumMap.put("last", 1); expectedParamNumMap.put("ratio", 2); + expectedParamNumMap.put("substring", 1); } public static int getExpectedParamNum(String identifier) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java index 2f27b121f4..e04cf5a4f5 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java @@ -35,6 +35,7 @@ import cn.edu.tsinghua.iginx.engine.shared.function.system.Max; import cn.edu.tsinghua.iginx.engine.shared.function.system.Min; import cn.edu.tsinghua.iginx.engine.shared.function.system.Ratio; +import cn.edu.tsinghua.iginx.engine.shared.function.system.SubString; import cn.edu.tsinghua.iginx.engine.shared.function.system.Sum; import cn.edu.tsinghua.iginx.engine.shared.function.udf.python.PyUDAF; import cn.edu.tsinghua.iginx.engine.shared.function.udf.python.PyUDF; @@ -100,6 +101,7 @@ private void initSystemFunctions() { registerFunction(Sum.getInstance()); registerFunction(ArithmeticExpr.getInstance()); registerFunction(Ratio.getInstance()); + registerFunction(SubString.getInstance()); } private void initBasicUDFFunctions() { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/SubString.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/SubString.java new file mode 100644 index 0000000000..2fa7e17d2f --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/SubString.java @@ -0,0 +1,97 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * TSIGinX@gmail.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package cn.edu.tsinghua.iginx.engine.shared.function.system; + +import cn.edu.tsinghua.iginx.engine.shared.data.Value; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionType; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; +import cn.edu.tsinghua.iginx.engine.shared.function.RowMappingFunction; +import cn.edu.tsinghua.iginx.thrift.DataType; +import java.util.Arrays; +import java.util.Collections; + +public class SubString implements RowMappingFunction { + + public static final String SUB_STRING = "substring"; + + private static final SubString INSTANCE = new SubString(); + + private SubString() {} + + public static SubString getInstance() { + return INSTANCE; + } + + @Override + public FunctionType getFunctionType() { + return FunctionType.System; + } + + @Override + public MappingType getMappingType() { + return MappingType.RowMapping; + } + + @Override + public String getIdentifier() { + return SUB_STRING; + } + + @Override + public Row transform(Row row, FunctionParams params) throws Exception { + if (params.getPaths().size() != 1 || params.getArgs().size() != 2) { + throw new IllegalArgumentException("Unexpected params for substring."); + } + + String path = params.getPaths().get(0); + Value valueA = row.getAsValue(path); + if (valueA == null || valueA.isNull()) { + return Row.EMPTY_ROW; + } + if (valueA.getDataType() != DataType.BINARY) { + throw new IllegalArgumentException("Unexpected data type for substring function."); + } + + long start, length; + if (!(params.getArgs().get(0) instanceof Long)) { + throw new IllegalArgumentException("The 2nd arg 'start' for substring should be a number."); + } + if (!(params.getArgs().get(1) instanceof Long)) { + throw new IllegalArgumentException("The 3rd arg 'length' for substring should be a number."); + } + + start = (Long) params.getArgs().get(0); + length = (Long) params.getArgs().get(1); + byte[] original = valueA.getBinaryV(); + byte[] ret = Arrays.copyOfRange(original, (int) (start - 1), (int) length); + + Header newHeader = + new Header( + row.getHeader().getKey(), + Collections.singletonList( + new Field( + "substring(" + path + ", " + start + ", " + length + ")", DataType.BINARY))); + return new Row(newHeader, row.getKey(), new Object[] {ret}); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java index a87d6c0f50..59ecd6d2a6 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java @@ -210,6 +210,14 @@ public static String toString(Object value, DataType dataType) { return ""; } + public static String toString(Object value) { + if (value instanceof byte[]) { + return new String((byte[]) value); + } else { + return value.toString(); + } + } + public static int getHash(Value value, boolean needTypeCast) { if (needTypeCast) { value = ValueUtils.transformToDouble(value); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index 024d80883f..ac8802d1fc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -139,6 +139,7 @@ import cn.edu.tsinghua.iginx.sql.SqlParser.SqlStatementContext; import cn.edu.tsinghua.iginx.sql.SqlParser.StorageEngineContext; import cn.edu.tsinghua.iginx.sql.SqlParser.StringLiteralContext; +import cn.edu.tsinghua.iginx.sql.SqlParser.SubqueryContext; import cn.edu.tsinghua.iginx.sql.SqlParser.TableReferenceContext; import cn.edu.tsinghua.iginx.sql.SqlParser.TagEquationContext; import cn.edu.tsinghua.iginx.sql.SqlParser.TagExpressionContext; @@ -706,7 +707,9 @@ private void parseFromParts(FromClauseContext ctx, UnarySelectStatement selectSt JoinType joinType = parseJoinType(joinPartContext.join()); Filter filter = null; if (joinPartContext.orExpression() != null) { - filter = parseOrExpression(joinPartContext.orExpression(), selectStatement).getFilter(); + filter = + parseOrExpression(joinPartContext.orExpression(), selectStatement, Pos.FromClause) + .getFilter(); } List columns = new ArrayList<>(); if (joinPartContext.colList() != null && !joinPartContext.colList().isEmpty()) { @@ -1014,45 +1017,40 @@ private void parseSelectPathsWithValue2Meta( private List parseExpression( ExpressionContext ctx, UnarySelectStatement selectStatement) { - return parseExpression(ctx, selectStatement, true); + return parseExpression(ctx, selectStatement, Pos.SelectClause); } private List parseExpression( - ExpressionContext ctx, UnarySelectStatement selectStatement, boolean isFromSelectClause) { + ExpressionContext ctx, UnarySelectStatement selectStatement, Pos pos) { if (ctx.function() != null) { - return Collections.singletonList( - parseFuncExpression(ctx, selectStatement, isFromSelectClause)); + return Collections.singletonList(parseFuncExpression(ctx, selectStatement, pos)); } if (ctx.path() != null && !ctx.path().isEmpty()) { - return Collections.singletonList( - parseBaseExpression(ctx, selectStatement, isFromSelectClause)); + return Collections.singletonList(parseBaseExpression(ctx, selectStatement, pos)); } if (ctx.constant() != null) { return Collections.singletonList(new ConstantExpression(parseValue(ctx.constant()))); } if (ctx.caseSpecification() != null) { return Collections.singletonList( - parseCaseWhenExpression(ctx.caseSpecification(), selectStatement)); + parseCaseWhenExpression(ctx.caseSpecification(), selectStatement, pos)); } List ret = new ArrayList<>(); if (ctx.inBracketExpr != null) { - List expressions = - parseExpression(ctx.inBracketExpr, selectStatement, isFromSelectClause); + List expressions = parseExpression(ctx.inBracketExpr, selectStatement, pos); for (Expression expression : expressions) { ret.add(new BracketExpression(expression)); } } else if (ctx.expr != null) { - List expressions = parseExpression(ctx.expr, selectStatement, isFromSelectClause); + List expressions = parseExpression(ctx.expr, selectStatement, pos); Operator operator = parseOperator(ctx); for (Expression expression : expressions) { ret.add(new UnaryExpression(operator, expression)); } } else if (ctx.leftExpr != null && ctx.rightExpr != null) { - List leftExpressions = - parseExpression(ctx.leftExpr, selectStatement, isFromSelectClause); - List rightExpressions = - parseExpression(ctx.rightExpr, selectStatement, isFromSelectClause); + List leftExpressions = parseExpression(ctx.leftExpr, selectStatement, pos); + List rightExpressions = parseExpression(ctx.rightExpr, selectStatement, pos); Operator operator = parseOperator(ctx); for (Expression leftExpression : leftExpressions) { for (Expression rightExpression : rightExpressions) { @@ -1083,12 +1081,8 @@ private List parseExpression( .getExpressions() .forEach( expression -> { - String selectedPath; - if (expression.hasAlias()) { - selectedPath = expression.getAlias(); - } else { - selectedPath = expression.getColumnName(); - } + String selectedPath = + expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); BaseExpression baseExpression = new BaseExpression(selectedPath); ret.add(baseExpression); }); @@ -1099,7 +1093,7 @@ private List parseExpression( } private Expression parseFuncExpression( - ExpressionContext ctx, UnarySelectStatement selectStatement, boolean isFromSelectClause) { + ExpressionContext ctx, UnarySelectStatement selectStatement, Pos pos) { FunctionContext funcCtx = ctx.function(); String funcName = funcCtx.functionName().getText(); @@ -1116,10 +1110,7 @@ private Expression parseFuncExpression( List columns = new ArrayList<>(); for (ExpressionContext exprCtx : funcCtx.expression()) { - if (exprCtx.subquery() != null) { - throw new SQLParserException("Subquery is not supported to be used in function"); - } - columns.addAll(parseExpression(exprCtx, selectStatement, isFromSelectClause)); + columns.addAll(parseExpression(exprCtx, selectStatement, pos)); } List args = new ArrayList<>(); @@ -1161,48 +1152,53 @@ private Expression parseFuncExpression( } private Expression parseBaseExpression( - ExpressionContext ctx, UnarySelectStatement selectStatement, boolean isFromSelectClause) { + ExpressionContext ctx, UnarySelectStatement selectStatement, Pos pos) { String selectedPath = parsePath(ctx.path()); - // 如果查询语句中FROM子句只有一个部分且FROM一个前缀,则SELECT子句中的path只用写出后缀 + + if (filterPosSet.contains(pos)) { + // 如果查询语句不是一个子查询,FROM子句只有一个部分且FROM一个前缀,则filter中的path只用写出后缀 + if (selectStatement.isFromSinglePath() && !selectStatement.isSubQuery()) { + FromPart fromPart = selectStatement.getFromPart(0); + selectedPath = fromPart.getPrefix() + SQLConstant.DOT + selectedPath; + } + return new BaseExpression(selectedPath); + } + + String fullPath = selectedPath; + String originPath = selectedPath; + // 如果查询语句中FROM子句只有一个部分且FROM一个前缀,则path(可能会来自SELECT,GROUP BY,ORDER BY)只用写出后缀 if (selectStatement.isFromSinglePath()) { FromPart fromPart = selectStatement.getFromPart(0); - String fullPath = fromPart.getPrefix() + SQLConstant.DOT + selectedPath; - String originFullPath = fromPart.getOriginPrefix() + SQLConstant.DOT + selectedPath; - BaseExpression expression = new BaseExpression(fullPath); - if (isFromSelectClause) { - selectStatement.addSelectPath(originFullPath); - } - return expression; - } else { - BaseExpression expression = new BaseExpression(selectedPath); - if (isFromSelectClause) { - selectStatement.addSelectPath(selectedPath); - } - return expression; + fullPath = fromPart.getPrefix() + SQLConstant.DOT + selectedPath; + originPath = fromPart.getOriginPrefix() + SQLConstant.DOT + selectedPath; // 考虑FROM子句重命名的情况 + } + if (pos == Pos.SelectClause) { + selectStatement.addSelectPath(originPath); } + return new BaseExpression(fullPath); } private Expression parseCaseWhenExpression( - CaseSpecificationContext ctx, UnarySelectStatement selectStatement) { + CaseSpecificationContext ctx, UnarySelectStatement selectStatement, Pos pos) { if (ctx.simpleCase() != null) { - return parseSimpleCase(ctx.simpleCase(), selectStatement); + return parseSimpleCase(ctx.simpleCase(), selectStatement, pos); } else if (ctx.searchedCase() != null) { - return parseSearchedCase(ctx.searchedCase(), selectStatement); + return parseSearchedCase(ctx.searchedCase(), selectStatement, pos); } else { throw new SQLParserException("Illegal case when selected expression"); } } private CaseWhenExpression parseSimpleCase( - SimpleCaseContext ctx, UnarySelectStatement selectStatement) { + SimpleCaseContext ctx, UnarySelectStatement selectStatement, Pos pos) { List conditions = new ArrayList<>(); List results = new ArrayList<>(); - Expression leftExpr = parseExpression(ctx.expression(), selectStatement).get(0); + Expression leftExpr = parseExpression(ctx.expression(), selectStatement, pos).get(0); String leftPath = ExpressionUtils.transformToBaseExpr(leftExpr); for (SimpleWhenClauseContext context : ctx.simpleWhenClause()) { if (context.value != null) { - Expression rightExpr = parseExpression(context.value, selectStatement).get(0); + Expression rightExpr = parseExpression(context.value, selectStatement, pos).get(0); String rightPath = ExpressionUtils.transformToBaseExpr(rightExpr); Op op = context.comparisonOperator() == null @@ -1228,11 +1224,11 @@ private CaseWhenExpression parseSimpleCase( } } - results.add(parseExpression(context.result, selectStatement).get(0)); + results.add(parseExpression(context.result, selectStatement, pos).get(0)); } Expression resultElse = null; if (ctx.elseClause() != null) { - resultElse = parseExpression(ctx.elseClause().expression(), selectStatement).get(0); + resultElse = parseExpression(ctx.elseClause().expression(), selectStatement, pos).get(0); } String columnName = CaseWhenExpression.CASE_WHEN_PREFIX + caseWhenCount; caseWhenCount++; @@ -1240,23 +1236,24 @@ private CaseWhenExpression parseSimpleCase( } private CaseWhenExpression parseSearchedCase( - SearchedCaseContext ctx, UnarySelectStatement selectStatement) { + SearchedCaseContext ctx, UnarySelectStatement selectStatement, Pos pos) { List conditions = new ArrayList<>(); List results = new ArrayList<>(); for (SearchedWhenClauseContext context : ctx.searchedWhenClause()) { - FilterData filterData = parseOrExpression(context.condition, selectStatement); + FilterData filterData = + parseOrExpression(context.condition, selectStatement, Pos.SelectClause); if (!filterData.getSubQueryFromPartList().isEmpty()) { throw new SQLParserException( "Subquery is not supported to be used in case when expression."); } conditions.add(filterData.getFilter()); filterData.getPathList().forEach(selectStatement::addSelectPath); - results.add(parseExpression(context.result, selectStatement).get(0)); + results.add(parseExpression(context.result, selectStatement, pos).get(0)); } Expression resultElse = null; if (ctx.elseClause() != null) { - resultElse = parseExpression(ctx.elseClause().expression(), selectStatement).get(0); + resultElse = parseExpression(ctx.elseClause().expression(), selectStatement, pos).get(0); } String columnName = CaseWhenExpression.CASE_WHEN_PREFIX + caseWhenCount; caseWhenCount++; @@ -1287,7 +1284,8 @@ private void parseSpecialClause(SpecialClauseContext ctx, UnarySelectStatement s parseGroupByClause(ctx.groupByClause(), selectStatement); } if (ctx.havingClause() != null) { - FilterData filterData = parseOrExpression(ctx.havingClause().orExpression(), selectStatement); + FilterData filterData = + parseOrExpression(ctx.havingClause().orExpression(), selectStatement, Pos.HavingClause); selectStatement.setHavingFilter(filterData.getFilter()); filterData.getPathList().forEach(selectStatement::addHavingPath); filterData.getSubQueryFromPartList().forEach(selectStatement::addHavingSubQueryPart); @@ -1410,7 +1408,8 @@ private Expression parseGroupByItem( if (ctx.expression().subquery() != null) { throw new SQLParserException("Subquery is not supported in GROUP BY columns."); } - Expression expr = parseExpression(ctx.expression(), selectStatement, false).get(0); + Expression expr = + parseExpression(ctx.expression(), selectStatement, Pos.GroupByClause).get(0); MappingType type = ExpressionUtils.getExprMappingType(expr); if (type == MappingType.SetMapping || type == MappingType.Mapping) { throw new SQLParserException("GROUP BY column can not use SetToSet/SetToRow functions."); @@ -1522,7 +1521,7 @@ private void parseOrderItem(OrderItemContext ctx, SelectStatement selectStatemen if (ctx.expression().subquery() != null) { throw new SQLParserException("Subquery is not supported in ORDER BY columns."); } - Expression expr = parseExpression(ctx.expression(), statement, false).get(0); + Expression expr = parseExpression(ctx.expression(), statement, Pos.OrderByClause).get(0); MappingType type = ExpressionUtils.getExprMappingType(expr); if (type == MappingType.SetMapping || type == MappingType.Mapping) { throw new SQLParserException("ORDER BY column can not use SetToSet/SetToRow functions."); @@ -1649,24 +1648,28 @@ private BasePreciseTagFilter parseAndPreciseExpression(AndPreciseExpressionConte } private FilterData parseOrExpression(OrExpressionContext ctx, Statement statement) { + return parseOrExpression(ctx, statement, Pos.WhereClause); + } + + private FilterData parseOrExpression(OrExpressionContext ctx, Statement statement, Pos pos) { List children = new ArrayList<>(); for (AndExpressionContext andCtx : ctx.andExpression()) { - children.add(parseAndExpression(andCtx, statement)); + children.add(parseAndExpression(andCtx, statement, pos)); } return children.size() == 1 ? children.get(0) : new FilterData(children, FilterType.Or); } - private FilterData parseAndExpression(AndExpressionContext ctx, Statement statement) { + private FilterData parseAndExpression(AndExpressionContext ctx, Statement statement, Pos pos) { List children = new ArrayList<>(); for (PredicateContext predicateCtx : ctx.predicate()) { - children.add(parsePredicate(predicateCtx, statement)); + children.add(parsePredicate(predicateCtx, statement, pos)); } return children.size() == 1 ? children.get(0) : new FilterData(children, FilterType.And); } - private FilterData parsePredicate(PredicateContext ctx, Statement statement) { + private FilterData parsePredicate(PredicateContext ctx, Statement statement, Pos pos) { if (ctx.orExpression() != null) { - FilterData filterData = parseOrExpression(ctx.orExpression(), statement); + FilterData filterData = parseOrExpression(ctx.orExpression(), statement, pos); if (ctx.OPERATOR_NOT() != null) { filterData.setFilter(new NotFilter(filterData.getFilter())); } @@ -1685,13 +1688,13 @@ private FilterData parsePredicate(PredicateContext ctx, Statement statement) { if (ctx.predicateWithSubquery() != null) { return parseFilterWithSubQuery( - ctx.predicateWithSubquery(), (UnarySelectStatement) statement); + ctx.predicateWithSubquery(), (UnarySelectStatement) statement, pos); } else if (ctx.expression().size() == 2) { - return parseExprFilter(ctx, (UnarySelectStatement) statement); - } else if (ctx.path().size() == 1) { - return parseValueFilter(ctx, (UnarySelectStatement) statement); + return parseExprFilter(ctx, (UnarySelectStatement) statement, pos); + } else if (ctx.path().size() == 2) { + return parsePathFilter(ctx, (UnarySelectStatement) statement, pos); } else { - return parsePathFilter(ctx, (UnarySelectStatement) statement); + return parseValueFilter(ctx, (UnarySelectStatement) statement, pos); } } } @@ -1706,32 +1709,24 @@ private FilterData parseKeyFilter(PredicateContext ctx) { return new FilterData(new KeyFilter(op, time)); } - private FilterData parseExprFilter(PredicateContext ctx, UnarySelectStatement statement) { + private FilterData parseExprFilter( + PredicateContext ctx, UnarySelectStatement statement, Pos pos) { Op op = Op.str2Op(ctx.comparisonOperator().getText()); assert ctx.expression().size() == 2; - Expression expressionA = parseExpression(ctx.expression().get(0), statement, false).get(0); - Expression expressionB = parseExpression(ctx.expression().get(1), statement, false).get(0); + Expression expressionA = parseExpression(ctx.expression().get(0), statement, pos).get(0); + Expression expressionB = parseExpression(ctx.expression().get(1), statement, pos).get(0); return new FilterData(new ExprFilter(expressionA, op, expressionB)); } - private FilterData parseValueFilter(PredicateContext ctx, UnarySelectStatement statement) { + private FilterData parseValueFilter( + PredicateContext ctx, UnarySelectStatement statement, Pos pos) { String path = parsePath(ctx.path().get(0)); - if (statement.isFromSinglePath() && !statement.isSubQuery()) { - FromPart fromPart = statement.getFromPart(0); + FromPart fromPart = getFromPartIfNeedPrefix(statement, pos); + if (fromPart != null) { path = fromPart.getPrefix() + SQLConstant.DOT + path; } - // deal with having filter with functions like having avg(a) > 3. - // we need a instead of avg(a) to combine fragments' raw data. - if (ctx.functionName() != null) { - String funcName = ctx.functionName().getText(); - if (FunctionUtils.isSysFunc(funcName)) { - funcName = funcName.toLowerCase(); - } - path = funcName + "(" + path + ")"; - } - Op op; if (ctx.stringLikeOperator() != null) { String strOp = ctx.stringLikeOperator().getText().trim().toLowerCase(); @@ -1761,15 +1756,15 @@ private FilterData parseValueFilter(PredicateContext ctx, UnarySelectStatement s return filterData; } - private FilterData parsePathFilter(PredicateContext ctx, UnarySelectStatement statement) { + private FilterData parsePathFilter( + PredicateContext ctx, UnarySelectStatement statement, Pos pos) { String pathA = parsePath(ctx.path().get(0)); String pathB = parsePath(ctx.path().get(1)); Op op = Op.str2Op(ctx.comparisonOperator().getText().trim().toLowerCase()); - // 如果查询语句不是一个子查询,FROM子句只有一个部分且FROM一个前缀,则WHERE条件中的path只用写出后缀 - if (statement.isFromSinglePath() && !statement.isSubQuery()) { - FromPart fromPart = statement.getFromPart(0); + FromPart fromPart = getFromPartIfNeedPrefix(statement, pos); + if (fromPart != null) { pathA = fromPart.getPrefix() + SQLConstant.DOT + pathA; pathB = fromPart.getPrefix() + SQLConstant.DOT + pathB; } @@ -1780,15 +1775,15 @@ private FilterData parsePathFilter(PredicateContext ctx, UnarySelectStatement st } private FilterData parseFilterWithSubQuery( - PredicateWithSubqueryContext ctx, UnarySelectStatement statement) { + PredicateWithSubqueryContext ctx, UnarySelectStatement statement, Pos pos) { if (ctx.EXISTS() != null) { return parseExistsFilter(ctx, statement); } else if (ctx.IN() != null) { - return parseInFilter(ctx, statement); + return parseInFilter(ctx, statement, pos); } else if (ctx.quantifier() != null) { - return parseQuantifierComparisonFilter(ctx, statement); + return parseQuantifierComparisonFilter(ctx, statement, pos); } else if (ctx.subquery().size() == 1) { - return parseScalarSubQueryComparisonFilter(ctx, statement); + return parseScalarSubQueryComparisonFilter(ctx, statement, pos); } else { return parseTwoScalarSubQueryComparisonFilter(ctx, statement); } @@ -1816,7 +1811,7 @@ private FilterData parseExistsFilter( } private FilterData parseInFilter( - PredicateWithSubqueryContext ctx, UnarySelectStatement statement) { + PredicateWithSubqueryContext ctx, UnarySelectStatement statement, Pos pos) { SelectStatement subStatement = buildSubStatement(ctx, statement, 0, 1); // 计算子查询的自由变量 subStatement.initFreeVariables(); @@ -1824,24 +1819,27 @@ private FilterData parseInFilter( markJoinCount += 1; Filter filter; - Expression expression = subStatement.getExpressions().get(0); + Expression subQueryExpr = subStatement.getExpressions().get(0); + String subQueryPath = + subQueryExpr.hasAlias() ? subQueryExpr.getAlias() : subQueryExpr.getColumnName(); if (ctx.constant() != null) { Value value = new Value(parseValue(ctx.constant())); - String path = expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); - filter = new ValueFilter(path, Op.E, value); - } else { + filter = new ValueFilter(subQueryPath, Op.E, value); + } else if (ctx.path() != null) { String pathA = parsePath(ctx.path()); if (statement.isFromSinglePath() && !statement.isSubQuery()) { pathA = statement.getFromPart(0).getPrefix() + SQLConstant.DOT + pathA; } - // deal with having filter with functions - if (ctx.functionName() != null) { - pathA = ctx.functionName().getText() + "(" + pathA + ")"; - } - - String pathB = expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); - filter = new PathFilter(pathA, Op.E, pathB); + filter = new PathFilter(pathA, Op.E, subQueryPath); subStatement.addFreeVariable(pathA); + } else { + assert ctx.expression() != null; + Expression expr = parseExpression(ctx.expression(), statement, Pos.WhereClause).get(0); + filter = + pos == Pos.HavingClause + ? new PathFilter(expr.getColumnName(), Op.E, subQueryPath) + : new ExprFilter(expr, Op.E, new BaseExpression(subQueryPath)); + subStatement.addFreeVariable(expr.getColumnName()); } boolean isAntiJoin = ctx.OPERATOR_NOT() != null; @@ -1855,7 +1853,7 @@ private FilterData parseInFilter( } private FilterData parseQuantifierComparisonFilter( - PredicateWithSubqueryContext ctx, UnarySelectStatement statement) { + PredicateWithSubqueryContext ctx, UnarySelectStatement statement, Pos pos) { SelectStatement subStatement = buildSubStatement(ctx, statement, 0, 1); // 计算子查询的自由变量 subStatement.initFreeVariables(); @@ -1864,35 +1862,36 @@ private FilterData parseQuantifierComparisonFilter( Filter filter; Op op = Op.str2Op(ctx.comparisonOperator().getText().trim().toLowerCase()); - - Expression expression = subStatement.getExpressions().get(0); + Expression subQueryExpr = subStatement.getExpressions().get(0); + String subQueryPath = + subQueryExpr.hasAlias() ? subQueryExpr.getAlias() : subQueryExpr.getColumnName(); if (ctx.constant() != null) { Value value = new Value(parseValue(ctx.constant())); - String path = expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); - if (ctx.quantifier().all() != null) { - op = path.contains("*") ? Op.getDeMorganOpposite(op) : Op.getOpposite(op); + op = subQueryPath.contains("*") ? Op.getDeMorganOpposite(op) : Op.getOpposite(op); } - - filter = new ValueFilter(path, op, value); - } else { + filter = new ValueFilter(subQueryPath, op, value); + } else if (ctx.path() != null) { String pathA = parsePath(ctx.path()); if (statement.isFromSinglePath() && !statement.isSubQuery()) { pathA = statement.getFromPart(0).getPrefix() + SQLConstant.DOT + pathA; } - // deal with having filter with functions - if (ctx.functionName() != null) { - pathA = ctx.functionName().getText() + "(" + pathA + ")"; - } - - String pathB = expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); - if (ctx.quantifier().all() != null) { op = Op.getOpposite(op); } - - filter = new PathFilter(pathA, op, pathB); + filter = new PathFilter(pathA, op, subQueryPath); subStatement.addFreeVariable(pathA); + } else { + assert ctx.expression() != null; + Expression expr = parseExpression(ctx.expression(), statement, Pos.WhereClause).get(0); + if (ctx.quantifier().all() != null) { + op = Op.getOpposite(op); + } + filter = + pos == Pos.HavingClause + ? new PathFilter(expr.getColumnName(), op, subQueryPath) + : new ExprFilter(expr, op, new BaseExpression(subQueryPath)); + subStatement.addFreeVariable(expr.getColumnName()); } boolean isAntiJoin = ctx.quantifier().all() != null; @@ -1906,7 +1905,7 @@ private FilterData parseQuantifierComparisonFilter( } private FilterData parseScalarSubQueryComparisonFilter( - PredicateWithSubqueryContext ctx, UnarySelectStatement statement) { + PredicateWithSubqueryContext ctx, UnarySelectStatement statement, Pos pos) { SelectStatement subStatement = buildSubStatement(ctx, statement, 0, 1); // 计算子查询的自由变量 subStatement.initFreeVariables(); @@ -1919,25 +1918,33 @@ private FilterData parseScalarSubQueryComparisonFilter( FilterData filterData = new FilterData(); filterData.addSubQueryFromPart(subQueryPart); - Expression expression = subStatement.getExpressions().get(0); + Expression subQueryExpr = subStatement.getExpressions().get(0); + String subQueryPath = + subQueryExpr.hasAlias() ? subQueryExpr.getAlias() : subQueryExpr.getColumnName(); Op op = Op.str2Op(ctx.comparisonOperator().getText().trim().toLowerCase()); + if (ctx.children.get(0) instanceof SubqueryContext) { + op = Op.getDirectionOpposite(op); + } + if (ctx.constant() != null) { Value value = new Value(parseValue(ctx.constant())); - String path = expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); - filterData.setFilter(new ValueFilter(path, op, value)); - } else { + filterData.setFilter(new ValueFilter(subQueryPath, op, value)); + } else if (ctx.path() != null) { String pathA = parsePath(ctx.path()); if (statement.isFromSinglePath() && !statement.isSubQuery()) { pathA = statement.getFromPart(0).getPrefix() + SQLConstant.DOT + pathA; } - // deal with having filter with functions - if (ctx.functionName() != null) { - pathA = ctx.functionName().getText() + "(" + pathA + ")"; + filterData.setFilter(new PathFilter(pathA, op, subQueryPath)); + } else { + assert ctx.expression() != null; + Expression expr = parseExpression(ctx.expression(), statement, Pos.WhereClause).get(0); + if (pos == Pos.HavingClause) { + filterData.setFilter(new PathFilter(expr.getColumnName(), op, subQueryPath)); + } else { + filterData.setFilter(new ExprFilter(expr, op, new BaseExpression(subQueryPath))); } - - String pathB = expression.hasAlias() ? expression.getAlias() : expression.getColumnName(); - filterData.setFilter(new PathFilter(pathA, op, pathB)); } + return filterData; } @@ -2158,6 +2165,21 @@ private Map parseTagList(TagListContext ctx) { return tags; } + private FromPart getFromPartIfNeedPrefix(UnarySelectStatement statement, Pos pos) { + if (filterPosSet.contains(pos)) { + // 如果查询不是一个子查询,FROM子句只有一个部分且FROM一个前缀,则filter中的path只用写出后缀 + if (statement.isFromSinglePath() && !statement.isSubQuery()) { + return statement.getFromPart(0); + } + } else { // filter来自SELECT子句的场景:case-when + // 如果FROM子句只有一个部分且FROM一个前缀,则path(可能会来自SELECT,GROUP BY,ORDER BY)只用写出后缀 + if (statement.isFromSinglePath()) { + return statement.getFromPart(0); + } + } + return null; + } + private List getPathsFromPredicate( PredicateContext predicateContext, UnarySelectStatement statement) { List paths = new ArrayList<>(); @@ -2244,4 +2266,17 @@ public List getSubQueryFromPartList() { return subQueryFromPartList; } } + + private enum Pos { + SelectClause, + FromClause, + WhereClause, + GroupByClause, + HavingClause, + OrderByClause, + } + + // 关联子查询里,仅FROM子句和WHERE子句可以使用来自外查询的变量 + private static final Set filterPosSet = + new HashSet<>(Arrays.asList(Pos.FromClause, Pos.WhereClause)); } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java index 909b54e9e2..810f5472d6 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java @@ -47,9 +47,11 @@ import cn.edu.tsinghua.iginx.logical.optimizer.core.RuleCall; import cn.edu.tsinghua.iginx.utils.Pair; import cn.edu.tsinghua.iginx.utils.StringUtils; +import cn.edu.tsinghua.iginx.utils.ValueUtils; import com.google.auto.service.AutoService; import java.util.*; import java.util.regex.Pattern; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -436,10 +438,27 @@ private void changeColumnsFromFunctionCallList( columns.addAll(newColumns); } else { List columnNames = functionCall.getParams().getPaths(); - String functionStr = functionName + "(" + String.join(", ", columnNames) + ")"; + List args = functionCall.getParams().getArgs(); + Map kvargs = functionCall.getParams().getKwargs(); + + StringBuilder sb = new StringBuilder(); + sb.append(functionName).append("("); if (functionCall.getParams().isDistinct()) { - functionStr = functionName + "(distinct " + String.join(", ", columnNames) + ")"; + sb.append("distinct "); + } + sb.append(String.join(", ", columnNames)); + if (!args.isEmpty()) { + sb.append(", "); + sb.append(args.stream().map(ValueUtils::toString).collect(Collectors.joining(", "))); } + if (!kvargs.isEmpty()) { + sb.append(", "); + sb.append( + kvargs.values().stream().map(Object::toString).collect(Collectors.joining(", "))); + } + sb.append(")"); + + String functionStr = sb.toString(); columns.addAll(paths); if (columns.contains(functionStr)) { columns.remove(functionStr); diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ValueUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ValueUtils.java index 849c47a261..9f9cdf093e 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ValueUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/ValueUtils.java @@ -48,4 +48,12 @@ public static double transformToDouble(Object value) { throw new IllegalArgumentException("Unexpected data type"); } } + + public static String toString(Object value) { + if (value instanceof byte[]) { + return new String((byte[]) value); + } else { + return value.toString(); + } + } } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index bf23ed33a0..881f5acb90 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -4551,7 +4551,7 @@ public void testSelectSubQuery() { executor.executeAndCompare(statement, expected); statement = - "SELECT a, (SELECT d, AVG(a) FROM test.b GROUP BY d HAVING avg(test.b.a) > 2) FROM test.a;"; + "SELECT a, (SELECT d, AVG(a) FROM test.b GROUP BY d HAVING avg(a) > 2) FROM test.a;"; expected = "ResultSets:\n" + "+---+--------+--------+-------------+\n" @@ -4665,7 +4665,7 @@ public void testSelectSubQuery() { executor.executeAndCompare(statement, expected); statement = - "SELECT a, (SELECT AVG(a) AS a1 FROM test.b GROUP BY d HAVING avg(test.b.a) > 2) * (SELECT AVG(a) AS a2 FROM test.b) FROM test.a;"; + "SELECT a, (SELECT AVG(a) AS a1 FROM test.b GROUP BY d HAVING avg(a) > 2) * (SELECT AVG(a) AS a2 FROM test.b) FROM test.a;"; expected = "ResultSets:\n" + "+---+--------+-------+\n" @@ -5017,6 +5017,18 @@ public void testWhereSubQuery() { + "Total line number = 2\n"; executor.executeAndCompare(statement, expected); + statement = "SELECT * FROM test.a WHERE (SELECT AVG(a) FROM test.b) > a;"; + expected = + "ResultSets:\n" + + "+---+--------+--------+--------+--------+\n" + + "|key|test.a.a|test.a.b|test.a.c|test.a.d|\n" + + "+---+--------+--------+--------+--------+\n" + + "| 2| 1| 3| 2.1| val2|\n" + + "| 5| 1| 2| 3.1| val1|\n" + + "+---+--------+--------+--------+--------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + statement = "SELECT * FROM test.a WHERE (SELECT AVG(a) AS a FROM test.c) = (SELECT AVG(a) AS b FROM test.b);"; expected = @@ -5151,6 +5163,30 @@ public void testHavingSubQuery() { + "+-------------+--------+\n" + "Total line number = 1\n"; executor.executeAndCompare(statement, expected); + + statement = "SELECT AVG(a + c), b FROM test.a GROUP BY b;"; + expected = + "ResultSets:\n" + + "+------------------------+--------+\n" + + "|avg(test.a.a + test.a.c)|test.a.b|\n" + + "+------------------------+--------+\n" + + "| 5.1| 2|\n" + + "| 3.1| 3|\n" + + "+------------------------+--------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + statement = + "SELECT AVG(a + c), b FROM test.a GROUP BY b HAVING AVG(a + c) > (SELECT AVG(a) * 2 FROM test.b);"; + expected = + "ResultSets:\n" + + "+------------------------+--------+\n" + + "|avg(test.a.a + test.a.c)|test.a.b|\n" + + "+------------------------+--------+\n" + + "| 5.1| 2|\n" + + "+------------------------+--------+\n" + + "Total line number = 1\n"; + executor.executeAndCompare(statement, expected); } @Test @@ -6374,7 +6410,8 @@ public void testErrorClause() { executor.executeAndCompareErrMsg(errClause, "Group by can not use SetToSet functions."); errClause = "select * from test.a join test.b where a > 0;"; - executor.executeAndCompareErrMsg(errClause, "Unexpected paths' name: [a]."); + executor.executeAndCompareErrMsg( + errClause, "Unexpected paths' name: [a], check if there exists missing prefix."); errClause = "select * from (show columns a.*), (show columns b.*);"; executor.executeAndCompareErrMsg( diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java index 7653a86d48..5018c88d0e 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java @@ -520,6 +520,35 @@ public void testExprFilter() { + "+---+-------+-------+-------+\n" + "Total line number = 6\n"; assertEquals(expected, ret.getResultInString(false, "")); + + query = "SELECT * FROM test WHERE pow(s1 + s2, 2) - 5 > 30;"; + ret = tool.execute(query); + expected = + "ResultSets:\n" + + "+---+-------+-------+-------+\n" + + "|key|test.s1|test.s2|test.s3|\n" + + "+---+-------+-------+-------+\n" + + "| 3| 4| 3| 1|\n" + + "| 4| 9| 7| 5|\n" + + "| 5| 3| 6| 2|\n" + + "| 6| 6| 4| 2|\n" + + "+---+-------+-------+-------+\n" + + "Total line number = 4\n"; + assertEquals(expected, ret.getResultInString(false, "")); + + query = "SELECT * FROM test WHERE multiply(s1, s2 + s3) > 20;"; + ret = tool.execute(query); + expected = + "ResultSets:\n" + + "+---+-------+-------+-------+\n" + + "|key|test.s1|test.s2|test.s3|\n" + + "+---+-------+-------+-------+\n" + + "| 4| 9| 7| 5|\n" + + "| 5| 3| 6| 2|\n" + + "| 6| 6| 4| 2|\n" + + "+---+-------+-------+-------+\n" + + "Total line number = 3\n"; + assertEquals(expected, ret.getResultInString(false, "")); } @Test diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java index 73f6f29978..98e69672fe 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java @@ -31,10 +31,13 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Scanner; +import java.util.TimeZone; import java.util.stream.Collectors; import org.junit.Assert; import org.slf4j.Logger; @@ -140,10 +143,17 @@ private static void validate(SessionExecuteSqlResult result, int queryId) { } for (int i = 0; i < values.size(); i++) { for (int j = 0; j < values.get(i).size(); j++) { - if (result.getPaths().get(j).contains("address") - || result.getPaths().get(j).contains("comment") - || result.getPaths().get(j).contains("orderdate")) { - // TODO change unix time to date + if (result.getPaths().get(j).contains("orderdate")) { + long timestamp = (long) values.get(i).get(j); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); + String date = dateFormat.format(new Date(timestamp)); + String answerDate = answers.get(i).get(j); + if (!date.equals(answerDate)) { + System.out.println("Result string: '" + date + "'"); + System.out.println("Answer string: '" + answerDate + "'"); + } + assert date.equals(answerDate); continue; } // if only contains number and dot, then parse to double @@ -156,11 +166,12 @@ private static void validate(SessionExecuteSqlResult result, int queryId) { } assert answerNumber - number < 1e-3 && number - answerNumber < 1e-3; } else { - String resultString = new String((byte[]) values.get(i).get(j), StandardCharsets.UTF_8); - String answerString = answers.get(i).get(j); + String resultString = + new String((byte[]) values.get(i).get(j), StandardCharsets.UTF_8).trim(); + String answerString = answers.get(i).get(j).trim(); if (!resultString.equals(answerString)) { - System.out.println("Result string: " + resultString); - System.out.println("Answer string: " + answerString); + System.out.println("Result string: '" + resultString + "'"); + System.out.println("Answer string: '" + answerString + "'"); } assert resultString.equals(answerString); } diff --git a/test/src/test/resources/testConfig.properties b/test/src/test/resources/testConfig.properties index af56b51d18..8996b4f13c 100644 --- a/test/src/test/resources/testConfig.properties +++ b/test/src/test/resources/testConfig.properties @@ -69,6 +69,6 @@ is_scaling=false DBCE_test_way=oriHasDataExpHasData # TPC-H test -query_ids=1,2,3,4,5,6,9,10,13,16,17,18,19,20,21 +query_ids=1,2,3,4,5,6,9,10,13,16,17,19,20,21 max_repetitions_num=10 regression_threshold=0.3 diff --git a/test/src/test/resources/tpch/queries/q10.sql b/test/src/test/resources/tpch/queries/q10.sql index f7f36edbbf..882a77a014 100644 --- a/test/src/test/resources/tpch/queries/q10.sql +++ b/test/src/test/resources/tpch/queries/q10.sql @@ -1,7 +1,7 @@ SELECT customer.c_custkey, customer.c_name, - revenue, + SUM( tmp ) AS revenue, customer.c_acctbal, nation.n_name, customer.c_address, @@ -12,46 +12,34 @@ FROM SELECT customer.c_custkey, customer.c_name, - SUM( tmp ) AS revenue, + lineitem.l_extendedprice *( + 1 - lineitem.l_discount + ) AS tmp, customer.c_acctbal, nation.n_name, customer.c_address, customer.c_phone, customer.c_comment FROM - ( - SELECT - customer.c_custkey, - customer.c_name, - lineitem.l_extendedprice *( - 1 - lineitem.l_discount - ) AS tmp, - customer.c_acctbal, - nation.n_name, - customer.c_address, - customer.c_phone, - customer.c_comment - FROM - customer - JOIN orders ON - customer.c_custkey = orders.o_custkey - JOIN lineitem ON - lineitem.l_orderkey = orders.o_orderkey - JOIN nation ON - customer.c_nationkey = nation.n_nationkey - WHERE - orders.o_orderdate >= 749404800000 - AND orders.o_orderdate < 757353600000 - AND lineitem.l_returnflag = 'R' - ) - GROUP BY - customer.c_custkey, - customer.c_name, - customer.c_acctbal, - customer.c_phone, - nation.n_name, - customer.c_address, - customer.c_comment + customer + JOIN orders ON + customer.c_custkey = orders.o_custkey + JOIN lineitem ON + lineitem.l_orderkey = orders.o_orderkey + JOIN nation ON + customer.c_nationkey = nation.n_nationkey + WHERE + orders.o_orderdate >= 749404800000 + AND orders.o_orderdate < 757353600000 + AND lineitem.l_returnflag = 'R' ) +GROUP BY + customer.c_custkey, + customer.c_name, + customer.c_acctbal, + customer.c_phone, + nation.n_name, + customer.c_address, + customer.c_comment ORDER BY - revenue DESC LIMIT 20; \ No newline at end of file + revenue DESC LIMIT 20; diff --git a/test/src/test/resources/tpch/queries/q11.sql b/test/src/test/resources/tpch/queries/q11.sql new file mode 100644 index 0000000000..9913c7eb44 --- /dev/null +++ b/test/src/test/resources/tpch/queries/q11.sql @@ -0,0 +1,28 @@ +SELECT + partsupp.ps_partkey, + SUM( partsupp.ps_supplycost * partsupp.ps_availqty ) AS val +FROM + partsupp +JOIN supplier ON + partsupp.ps_suppkey = supplier.s_suppkey +JOIN nation ON + supplier.s_nationkey = nation.n_nationkey +WHERE + nation.n_name = 'GERMANY' +GROUP BY + partsupp.ps_partkey +HAVING + SUM( partsupp.ps_supplycost * partsupp.ps_availqty )>( + SELECT + SUM( partsupp.ps_supplycost * partsupp.ps_availqty )* 0.0001000000 + FROM + partsupp + JOIN supplier ON + partsupp.ps_suppkey = supplier.s_suppkey + JOIN nation ON + supplier.s_nationkey = nation.n_nationkey + WHERE + nation.n_name = 'GERMANY' + ) +ORDER BY + val DESC; \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q12.sql b/test/src/test/resources/tpch/queries/q12.sql new file mode 100644 index 0000000000..53f708c55c --- /dev/null +++ b/test/src/test/resources/tpch/queries/q12.sql @@ -0,0 +1,21 @@ +SELECT + lineitem.l_shipmode, + SUM( CASE WHEN orders.o_orderpriority = '1-URGENT' OR orders.o_orderpriority = '2-HIGH' THEN 1 ELSE 0 END ) AS high_line_count, + SUM( CASE WHEN orders.o_orderpriority <> '1-URGENT' AND orders.o_orderpriority <> '2-HIGH' THEN 1 ELSE 0 END ) AS low_line_count +FROM + orders +JOIN lineitem ON + orders.o_orderkey = lineitem.l_orderkey +WHERE + ( + lineitem.l_shipmode = 'MAIL' + OR lineitem.l_shipmode = 'SHIP' + ) + AND lineitem.l_commitdate < lineitem.l_receiptdate + AND lineitem.l_shipdate < lineitem.l_commitdate + AND lineitem.l_receiptdate >= 757353600000 + AND lineitem.l_receiptdate < 788889600000 +GROUP BY + lineitem.l_shipmode +ORDER BY + lineitem.l_shipmode; \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q13.sql b/test/src/test/resources/tpch/queries/q13.sql index 106e25268a..61badc1370 100644 --- a/test/src/test/resources/tpch/queries/q13.sql +++ b/test/src/test/resources/tpch/queries/q13.sql @@ -16,6 +16,6 @@ FROM ) GROUP BY c_count -ORDER BY -- spotless:off - `count(c_custkey)` DESC, -- spotless:on +ORDER BY + custdist DESC, c_count DESC; \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q14.sql b/test/src/test/resources/tpch/queries/q14.sql new file mode 100644 index 0000000000..4b79f314a7 --- /dev/null +++ b/test/src/test/resources/tpch/queries/q14.sql @@ -0,0 +1,9 @@ +SELECT + 100.00 * SUM( CASE WHEN part.p_type LIKE 'PROMO.*' THEN lineitem.l_extendedprice *( 1 - lineitem.l_discount ) ELSE 0.0 END )/ SUM( lineitem.l_extendedprice *( 1 - lineitem.l_discount )) AS promo_revenue +FROM + lineitem +JOIN part ON + lineitem.l_partkey = part.p_partkey +WHERE + lineitem.l_shipdate >= 809884800000 + AND lineitem.l_shipdate < 812476800000; \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q15.sql b/test/src/test/resources/tpch/queries/q15.sql new file mode 100644 index 0000000000..7d806eaae0 --- /dev/null +++ b/test/src/test/resources/tpch/queries/q15.sql @@ -0,0 +1,30 @@ +WITH revenue AS( + SELECT + l_suppkey AS supplier_no, + SUM( l_extendedprice *( 1 - l_discount )) AS total_revenue + FROM + lineitem + WHERE + l_shipdate >= 820425600000 + AND l_shipdate < 828288000000 + GROUP BY + l_suppkey +) SELECT + supplier.s_suppkey, + supplier.s_name, + supplier.s_address, + supplier.s_phone, + revenue.total_revenue +FROM + supplier, + revenue +WHERE + supplier.s_suppkey = revenue.supplier_no + AND revenue.total_revenue =( + SELECT + MAX( total_revenue ) + FROM + revenue + ) +ORDER BY + supplier.s_suppkey; \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q16.sql b/test/src/test/resources/tpch/queries/q16.sql index 200891f29f..25d4157a2d 100644 --- a/test/src/test/resources/tpch/queries/q16.sql +++ b/test/src/test/resources/tpch/queries/q16.sql @@ -1,55 +1,46 @@ SELECT - p_brand, - p_type, - p_size, - supplier_cnt + part.p_brand AS p_brand, + part.p_type AS p_type, + part.p_size AS p_size, + COUNT( DISTINCT partsupp.ps_suppkey ) AS supplier_cnt FROM - ( + partsupp +JOIN part ON + part.p_partkey = partsupp.ps_partkey +WHERE + part.p_brand <> 'Brand#45' + AND part.p_partkey NOT IN( SELECT - part.p_brand AS p_brand, - part.p_type AS p_type, - part.p_size AS p_size, - COUNT( DISTINCT partsupp.ps_suppkey ) AS supplier_cnt + p_partkey FROM - partsupp - JOIN part ON - part.p_partkey = partsupp.ps_partkey + part AS p WHERE - part.p_brand <> 'Brand#45' - AND part.p_partkey NOT IN( - SELECT - p_partkey - FROM - part - WHERE - part.p_type LIKE '.*MEDIUM POLISHED.*' - ) - AND( - part.p_size = 3 - OR part.p_size = 9 - OR part.p_size = 14 - OR part.p_size = 19 - OR part.p_size = 23 - OR part.p_size = 36 - OR part.p_size = 45 - OR part.p_size = 49 - ) - AND partsupp.ps_suppkey NOT IN( - SELECT - s_suppkey - FROM - supplier - WHERE - supplier.s_comment LIKE '.*Customer.*Complaints.*' - ) - GROUP BY - part.p_brand, - part.p_type, - part.p_size - ORDER BY - part.p_brand, - part.p_type, - part.p_size + p.p_type LIKE '.*MEDIUM POLISHED.*' + ) + AND( + part.p_size = 3 + OR part.p_size = 9 + OR part.p_size = 14 + OR part.p_size = 19 + OR part.p_size = 23 + OR part.p_size = 36 + OR part.p_size = 45 + OR part.p_size = 49 ) + AND partsupp.ps_suppkey NOT IN( + SELECT + s_suppkey + FROM + supplier + WHERE + supplier.s_comment LIKE '.*Customer.*Complaints.*' + ) +GROUP BY + p_brand, + p_type, + p_size ORDER BY - supplier_cnt DESC; \ No newline at end of file + supplier_cnt DESC, + p_brand, + p_type, + p_size; diff --git a/test/src/test/resources/tpch/queries/q18.sql b/test/src/test/resources/tpch/queries/q18.sql index 85be2e6463..a2cc449923 100644 --- a/test/src/test/resources/tpch/queries/q18.sql +++ b/test/src/test/resources/tpch/queries/q18.sql @@ -24,9 +24,8 @@ WHERE lineitem GROUP BY l_orderkey - HAVING -- spotless:off - sum(lineitem.l_quantity)> 300 -- spotless:on - + HAVING + SUM( l_quantity )> 300 ) ) GROUP BY diff --git a/test/src/test/resources/tpch/queries/q19.sql b/test/src/test/resources/tpch/queries/q19.sql index b1170567c7..546cc013f1 100644 --- a/test/src/test/resources/tpch/queries/q19.sql +++ b/test/src/test/resources/tpch/queries/q19.sql @@ -1,68 +1,61 @@ SELECT - SUM( tmp ) AS revenue + SUM( lineitem.l_extendedprice *( 1 - lineitem.l_discount )) AS revenue FROM + lineitem +JOIN part ON + part.p_partkey = lineitem.l_partkey +WHERE ( - SELECT - lineitem.l_extendedprice *( - 1 - lineitem.l_discount - ) AS tmp - FROM - lineitem - JOIN part ON - part.p_partkey = lineitem.l_partkey - WHERE - ( - part.p_brand = 'Brand#12' - AND( - part.p_container = 'SM CASE' - OR part.p_container = 'SM BOX' - OR part.p_container = 'SM PACK' - OR part.p_container = 'SM PKG' - ) - AND lineitem.l_quantity >= 1 - AND lineitem.l_quantity <= 11 - AND part.p_size >= 1 - AND part.p_size <= 5 - AND( - lineitem.l_shipmode = 'AIR' - OR lineitem.l_shipmode = 'AIR REG' - ) - AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' - ) - OR( - part.p_brand = 'Brand#23' - AND( - part.p_container = 'MED PKG' - OR part.p_container = 'MED BOX' - OR part.p_container = 'MED BAG' - OR part.p_container = 'MED PACK' - ) - AND lineitem.l_quantity >= 10 - AND lineitem.l_quantity <= 20 - AND part.p_size >= 1 - AND part.p_size <= 10 - AND( - lineitem.l_shipmode = 'AIR' - OR lineitem.l_shipmode = 'AIR REG' - ) - AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' - ) - OR( - part.p_brand = 'Brand#34' - AND( - part.p_container = 'LG PACK' - OR part.p_container = 'LG BOX' - OR part.p_container = 'LG CASE' - OR part.p_container = 'LG PKG' - ) - AND lineitem.l_quantity >= 20 - AND lineitem.l_quantity <= 30 - AND part.p_size >= 1 - AND part.p_size <= 15 - AND( - lineitem.l_shipmode = 'AIR' - OR lineitem.l_shipmode = 'AIR REG' - ) - AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' - ) + part.p_brand = 'Brand#12' + AND( + part.p_container = 'SM CASE' + OR part.p_container = 'SM BOX' + OR part.p_container = 'SM PACK' + OR part.p_container = 'SM PKG' + ) + AND lineitem.l_quantity >= 1 + AND lineitem.l_quantity <= 11 + AND part.p_size >= 1 + AND part.p_size <= 5 + AND( + lineitem.l_shipmode = 'AIR' + OR lineitem.l_shipmode = 'AIR REG' + ) + AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' + ) + OR( + part.p_brand = 'Brand#23' + AND( + part.p_container = 'MED PKG' + OR part.p_container = 'MED BOX' + OR part.p_container = 'MED BAG' + OR part.p_container = 'MED PACK' + ) + AND lineitem.l_quantity >= 10 + AND lineitem.l_quantity <= 20 + AND part.p_size >= 1 + AND part.p_size <= 10 + AND( + lineitem.l_shipmode = 'AIR' + OR lineitem.l_shipmode = 'AIR REG' + ) + AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' + ) + OR( + part.p_brand = 'Brand#34' + AND( + part.p_container = 'LG PACK' + OR part.p_container = 'LG BOX' + OR part.p_container = 'LG CASE' + OR part.p_container = 'LG PKG' + ) + AND lineitem.l_quantity >= 20 + AND lineitem.l_quantity <= 30 + AND part.p_size >= 1 + AND part.p_size <= 15 + AND( + lineitem.l_shipmode = 'AIR' + OR lineitem.l_shipmode = 'AIR REG' + ) + AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' ); \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q19_a.sql b/test/src/test/resources/tpch/queries/q19_a.sql new file mode 100644 index 0000000000..24fea28142 --- /dev/null +++ b/test/src/test/resources/tpch/queries/q19_a.sql @@ -0,0 +1,74 @@ +SELECT + SUM( revenue ) AS revenue +FROM + ( + SELECT + SUM( lineitem.l_extendedprice *( 1 - lineitem.l_discount )) AS revenue + FROM + lineitem + JOIN part ON + part.p_partkey = lineitem.l_partkey + WHERE + part.p_brand = 'Brand#12' + AND( + part.p_container = 'SM CASE' + OR part.p_container = 'SM BOX' + OR part.p_container = 'SM PACK' + OR part.p_container = 'SM PKG' + ) + AND lineitem.l_quantity >= 1 + AND lineitem.l_quantity <= 11 + AND part.p_size >= 1 + AND part.p_size <= 5 + AND( + lineitem.l_shipmode = 'AIR' + OR lineitem.l_shipmode = 'AIR REG' + ) + AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' + UNION SELECT + SUM( lineitem.l_extendedprice *( 1 - lineitem.l_discount )) AS revenue + FROM + lineitem + JOIN part ON + part.p_partkey = lineitem.l_partkey + WHERE + part.p_brand = 'Brand#23' + AND( + part.p_container = 'MED PKG' + OR part.p_container = 'MED BOX' + OR part.p_container = 'MED BAG' + OR part.p_container = 'MED PACK' + ) + AND lineitem.l_quantity >= 10 + AND lineitem.l_quantity <= 20 + AND part.p_size >= 1 + AND part.p_size <= 10 + AND( + lineitem.l_shipmode = 'AIR' + OR lineitem.l_shipmode = 'AIR REG' + ) + AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' + UNION SELECT + SUM( lineitem.l_extendedprice *( 1 - lineitem.l_discount )) AS revenue + FROM + lineitem + JOIN part ON + part.p_partkey = lineitem.l_partkey + WHERE + part.p_brand = 'Brand#34' + AND( + part.p_container = 'LG PACK' + OR part.p_container = 'LG BOX' + OR part.p_container = 'LG CASE' + OR part.p_container = 'LG PKG' + ) + AND lineitem.l_quantity >= 20 + AND lineitem.l_quantity <= 30 + AND part.p_size >= 1 + AND part.p_size <= 15 + AND( + lineitem.l_shipmode = 'AIR' + OR lineitem.l_shipmode = 'AIR REG' + ) + AND lineitem.l_shipinstruct = 'DELIVER IN PERSON' + ); \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q2.sql b/test/src/test/resources/tpch/queries/q2.sql index 620bc41c52..7ea45b66ad 100644 --- a/test/src/test/resources/tpch/queries/q2.sql +++ b/test/src/test/resources/tpch/queries/q2.sql @@ -28,46 +28,33 @@ INSERT ); SELECT - s_acctbal, - s_name, - n_name, - p_partkey, - p_mfgr, - s_address, - s_phone, - s_comment + supplier.s_acctbal AS s_acctbal, + supplier.s_name AS s_name, + nation.n_name AS n_name, + part.p_partkey AS p_partkey, + part.p_mfgr AS p_mfgr, + supplier.s_address AS s_address, + supplier.s_phone AS s_phone, + supplier.s_comment AS s_comment FROM - ( - SELECT - supplier.s_acctbal AS s_acctbal, - supplier.s_name AS s_name, - nation.n_name AS n_name, - part.p_partkey AS p_partkey, - part.p_mfgr AS p_mfgr, - supplier.s_address AS s_address, - supplier.s_phone AS s_phone, - supplier.s_comment AS s_comment - FROM - part - JOIN partsupp ON - part.p_partkey = partsupp.ps_partkey - JOIN supplier ON - supplier.s_suppkey = partsupp.ps_suppkey - JOIN nation ON - supplier.s_nationkey = nation.n_nationkey - JOIN region ON - nation.n_regionkey = region.r_regionkey - JOIN tmpTable ON - tmpTable.p_key = part.p_partkey - AND partsupp.ps_supplycost = tmpTable.minCost - WHERE - part.p_size = 15 - AND region.r_name = 'EUROPE' - AND part.p_type LIKE "^.*BRASS" - ORDER BY - nation.n_name, - supplier.s_name, - part.p_partkey - ) + part +JOIN partsupp ON + part.p_partkey = partsupp.ps_partkey +JOIN supplier ON + supplier.s_suppkey = partsupp.ps_suppkey +JOIN nation ON + supplier.s_nationkey = nation.n_nationkey +JOIN region ON + nation.n_regionkey = region.r_regionkey +JOIN tmpTable ON + tmpTable.p_key = part.p_partkey + AND partsupp.ps_supplycost = tmpTable.minCost +WHERE + part.p_size = 15 + AND region.r_name = 'EUROPE' + AND part.p_type LIKE "^.*BRASS" ORDER BY - s_acctbal DESC LIMIT 100; \ No newline at end of file + s_acctbal DESC, + n_name, + s_name, + p_partkey LIMIT 100; diff --git a/test/src/test/resources/tpch/queries/q21.sql b/test/src/test/resources/tpch/queries/q21.sql index 1a9bbd70fc..c1ad1ae570 100644 --- a/test/src/test/resources/tpch/queries/q21.sql +++ b/test/src/test/resources/tpch/queries/q21.sql @@ -34,6 +34,6 @@ WHERE AND nation.n_name = 'SAUDI ARABIA' GROUP BY supplier.s_name -ORDER BY -- spotless:off - `count(supplier.s_name)` DESC, -- spotless:on +ORDER BY + numwait DESC, supplier.s_name LIMIT 100; \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q22.sql b/test/src/test/resources/tpch/queries/q22.sql new file mode 100644 index 0000000000..faa8d31526 --- /dev/null +++ b/test/src/test/resources/tpch/queries/q22.sql @@ -0,0 +1,51 @@ +SELECT + cntrycode, + COUNT( c1.c_acctbal ) AS numcust, + SUM( c1.c_acctbal ) AS totacctbal +FROM + ( + SELECT + SUBSTRING( c_phone, 1, 2 ) AS cntrycode, + c_acctbal + FROM + customer AS c1 + WHERE + ( + SUBSTRING( c1.c_phone, 1, 2 )= '13' + OR SUBSTRING( c1.c_phone, 1, 2 )= '31' + OR SUBSTRING( c1.c_phone, 1, 2 )= '23' + OR SUBSTRING( c1.c_phone, 1, 2 )= '29' + OR SUBSTRING( c1.c_phone, 1, 2 )= '30' + OR SUBSTRING( c1.c_phone, 1, 2 )= '18' + OR SUBSTRING( c1.c_phone, 1, 2 )= '17' + ) + AND c1.c_acctbal >( + SELECT + AVG( c_acctbal ) + FROM + customer AS c2 + WHERE + c2.c_acctbal > 0.00 + AND( + SUBSTRING( c2.c_phone, 1, 2 )= '13' + OR SUBSTRING( c2.c_phone, 1, 2 )= '31' + OR SUBSTRING( c2.c_phone, 1, 2 )= '23' + OR SUBSTRING( c2.c_phone, 1, 2 )= '29' + OR SUBSTRING( c2.c_phone, 1, 2 )= '30' + OR SUBSTRING( c2.c_phone, 1, 2 )= '18' + OR SUBSTRING( c2.c_phone, 1, 2 )= '17' + ) + ) + AND NOT EXISTS( + SELECT + o_custkey + FROM + orders + WHERE + orders.o_custkey = c1.c_custkey + ) + ) +GROUP BY + cntrycode +ORDER BY + cntrycode; \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q3.sql b/test/src/test/resources/tpch/queries/q3.sql index 5b8e13ebff..e366c4eedd 100644 --- a/test/src/test/resources/tpch/queries/q3.sql +++ b/test/src/test/resources/tpch/queries/q3.sql @@ -1,39 +1,31 @@ SELECT l_orderkey, - revenue, + SUM( tmp ) AS revenue, o_orderdate, o_shippriority FROM ( SELECT - l_orderkey, - o_orderdate, - o_shippriority, - SUM( tmp ) AS revenue + lineitem.l_extendedprice *( + 1 - lineitem.l_discount + ) AS tmp, + lineitem.l_orderkey AS l_orderkey, + orders.o_orderdate AS o_orderdate, + orders.o_shippriority AS o_shippriority FROM - ( - SELECT - lineitem.l_extendedprice *( - 1 - lineitem.l_discount - ) AS tmp, - lineitem.l_orderkey AS l_orderkey, - orders.o_orderdate AS o_orderdate, - orders.o_shippriority AS o_shippriority - FROM - customer - JOIN orders ON - customer.c_custkey = orders.o_custkey - JOIN lineitem ON - lineitem.l_orderkey = orders.o_orderkey - WHERE - customer.c_mktsegment = 'BUILDING' - AND orders.o_orderdate < 795196800000 - AND lineitem.l_shipdate > 795225600000 - ) - GROUP BY - l_orderkey, - o_orderdate, - o_shippriority + customer + JOIN orders ON + customer.c_custkey = orders.o_custkey + JOIN lineitem ON + lineitem.l_orderkey = orders.o_orderkey + WHERE + customer.c_mktsegment = 'BUILDING' + AND orders.o_orderdate < 795196800000 + AND lineitem.l_shipdate > 795225600000 ) +GROUP BY + l_orderkey, + o_orderdate, + o_shippriority ORDER BY - revenue DESC LIMIT 10; \ No newline at end of file + revenue DESC LIMIT 10; diff --git a/test/src/test/resources/tpch/queries/q5.sql b/test/src/test/resources/tpch/queries/q5.sql index 6f123c6367..e188a7dcbb 100644 --- a/test/src/test/resources/tpch/queries/q5.sql +++ b/test/src/test/resources/tpch/queries/q5.sql @@ -1,38 +1,32 @@ SELECT nation.n_name, - revenue + SUM( tmp ) AS revenue FROM ( SELECT nation.n_name, - SUM( tmp ) AS revenue + lineitem.l_extendedprice *( + 1 - lineitem.l_discount + ) AS tmp FROM - ( - SELECT - nation.n_name, - lineitem.l_extendedprice *( - 1 - lineitem.l_discount - ) AS tmp - FROM - customer - JOIN orders ON - customer.c_custkey = orders.o_custkey - JOIN lineitem ON - lineitem.l_orderkey = orders.o_orderkey - JOIN supplier ON - lineitem.l_suppkey = supplier.s_suppkey - AND customer.c_nationkey = supplier.s_nationkey - JOIN nation ON - supplier.s_nationkey = nation.n_nationkey - JOIN region ON - nation.n_regionkey = region.r_regionkey - WHERE - region.r_name = "ASIA" - AND orders.o_orderdate >= 757353600000 - AND orders.o_orderdate < 788889600000 - ) - GROUP BY - nation.n_name + customer + JOIN orders ON + customer.c_custkey = orders.o_custkey + JOIN lineitem ON + lineitem.l_orderkey = orders.o_orderkey + JOIN supplier ON + lineitem.l_suppkey = supplier.s_suppkey + AND customer.c_nationkey = supplier.s_nationkey + JOIN nation ON + supplier.s_nationkey = nation.n_nationkey + JOIN region ON + nation.n_regionkey = region.r_regionkey + WHERE + region.r_name = "ASIA" + AND orders.o_orderdate >= 757353600000 + AND orders.o_orderdate < 788889600000 ) +GROUP BY + nation.n_name ORDER BY - revenue DESC; \ No newline at end of file + revenue DESC; diff --git a/test/src/test/resources/tpch/queries/q7.sql b/test/src/test/resources/tpch/queries/q7.sql new file mode 100644 index 0000000000..fb8ab1de49 --- /dev/null +++ b/test/src/test/resources/tpch/queries/q7.sql @@ -0,0 +1,48 @@ +SELECT + supp_nation, + cust_nation, + l_year, + SUM( volume ) AS revenue +FROM + ( + SELECT + n1.n_name AS supp_nation, + n2.n_name AS cust_nation, + extractYear(lineitem.l_shipdate) AS l_year, + lineitem.l_extendedprice *( + 1 - lineitem.l_discount + ) AS volume + FROM + supplier + JOIN lineitem ON + supplier.s_suppkey = lineitem.l_suppkey + JOIN orders ON + orders.o_orderkey = lineitem.l_orderkey + JOIN customer ON + customer.c_custkey = orders.o_custkey + JOIN nation n1 ON + supplier.s_nationkey = n1.n_nationkey + JOIN nation n2 ON + customer.c_nationkey = n2.n_nationkey + WHERE + lineitem.l_shipdate >= 788918400000 + AND lineitem.l_shipdate <= 851961600000 + AND( + ( + n1.n_name = 'FRANCE' + AND n2.n_name = 'GERMANY' + ) + OR( + n1.n_name = 'GERMANY' + AND n2.n_name = 'FRANCE' + ) + ) + ) +GROUP BY + supp_nation, + cust_nation, + l_year +ORDER BY + supp_nation, + cust_nation, + l_year; \ No newline at end of file diff --git a/test/src/test/resources/tpch/queries/q8.sql b/test/src/test/resources/tpch/queries/q8.sql new file mode 100644 index 0000000000..83c9038f9c --- /dev/null +++ b/test/src/test/resources/tpch/queries/q8.sql @@ -0,0 +1,37 @@ +SELECT + o_year, + SUM( CASE WHEN nation = 'BRAZIL' THEN volume ELSE 0.0 END )/ SUM( volume ) AS mkt_share +FROM + ( + SELECT + extractYear(orders.o_orderdate) AS o_year, + lineitem.l_extendedprice *( + 1 - lineitem.l_discount + ) AS volume, + n2.n_name AS nation + FROM + part + JOIN lineitem ON + part.p_partkey = lineitem.l_partkey + JOIN supplier ON + supplier.s_suppkey = lineitem.l_suppkey + JOIN orders ON + lineitem.l_orderkey = orders.o_orderkey + JOIN customer ON + orders.o_custkey = customer.c_custkey + JOIN nation n1 ON + customer.c_nationkey = n1.n_nationkey + JOIN nation n2 ON + supplier.s_nationkey = n2.n_nationkey + JOIN region ON + n1.n_regionkey = region.r_regionkey + WHERE + region.r_name = 'AMERICA' + AND orders.o_orderdate >= 788889600000 + AND orders.o_orderdate <= 851961600000 + AND part.p_type = 'ECONOMY ANODIZED STEEL' + ) +GROUP BY + o_year +ORDER BY + o_year; \ No newline at end of file diff --git a/test/src/test/resources/tpch/sf0.1/q10.csv b/test/src/test/resources/tpch/sf0.1/q10.csv index 79f006ddb9..0839ba28a4 100644 --- a/test/src/test/resources/tpch/sf0.1/q10.csv +++ b/test/src/test/resources/tpch/sf0.1/q10.csv @@ -1,21 +1,21 @@ c_custkey|c_name|revenue|c_acctbal|n_name|c_address|c_phone|c_comment -8242|Customer#000008242|622786.7297|6322.09|ETHIOPIA|cYDWDiJt06B8CYzXX2L8x2hn1VFG|15-792-676-1184| regular theodolites affix. carefully ironic packages cajole deposits; slyly ironic packages wake quickly. regular, -7714|Customer#000007714|557400.3053|9799.98|IRAN|9DDikq08GEE4B3X|20-922-418-6024|even accounts should cajole. regular, regular -11032|Customer#000011032|512500.9641|8496.93|UNITED KINGDOM|5igjoUgXoDUZVUIectL5lXO1T3AGKza0ft|33-102-772-3533|uests. ironic accounts after the fluffily fi -2455|Customer#000002455|481592.4053|2070.99|GERMANY|a5DZ199yfAcFhfi2uwBE PKo,Z|17-946-225-9977|pinto beans alongside of the furiously ironic asymptotes are quickly even platelets: express -12106|Customer#000012106|479414.2133|5342.11|UNITED STATES|wyJXywcExUxt|34-905-346-4472|blithely blithely final attainments? carefully special pinto beans around the quickly even asymptote -8530|Customer#000008530|457855.9467|9734.95|MOROCCO|leatyNRWCnfTMnTNuDGHsWJjRuAX|25-736-932-5850| the carefully pending packages. carefully -13984|Customer#000013984|446316.5104|3482.28|IRAN|B13vxRBojwvP3|20-981-264-2952|egular, ironic accounts integrate sly -1966|Customer#000001966|444059.0382|1937.72|ALGERIA|IbwZr7j QVifqf9WizOIWx,UXV9CqxUyrwj|10-973-269-8886|odolites across the unusual accounts hang carefully furiously bold excuses. regular pi -11026|Customer#000011026|417913.4142|7738.76|ALGERIA|4C iGzChcqnhGBdeeu|10-184-163-4632|eposits cajole according to the furiously bold instructions. regular, regular dependencies wake carefully eve -8501|Customer#000008501|412797.5100|6906.70|ARGENTINA|UTUQLX cQrF1UUJPsz|11-317-552-5840| packages. pending Tiresias after the regularly express forges haggle fina -1565|Customer#000001565|412506.0062|1820.03|BRAZIL|n4acVpG0Deyj5aIFAfSNg Iu9cUagwN3OsRbKC 4|12-402-178-2007|deposits; unusual, bold deposits around the f -14398|Customer#000014398|408575.3600|-602.24|UNITED STATES|l49oKjbjQHz6YZwjo5wPihM lyYO6G|34-814-111-5424|es haggle fluffily blithely fluffy requests; slyly express req -1465|Customer#000001465|405055.3457|9365.93|INDIA|zn9Q7pT6KlQp3T5mUO533aq,|18-807-487-1074|ress ideas cajole. slyly unusual theodolites cajole thin foxes. account -12595|Customer#000012595|401402.2391|-6.92|INDIA|gEMQ3WO90vSdAgxLFrt9FRS|18-186-132-3352| slyly dogged excuses. blithely blithe packages cajole -961|Customer#000000961|401198.1737|6963.68|JAPAN|W0SZ2oflx9aWTggtwSk3OEIXsubXTbGbD|22-989-463-6089|use furiously across the final deposits. quickly -14299|Customer#000014299|400968.3751|6595.97|RUSSIA|UFlOs8tQ,IfZPJm57|32-156-618-1224|slyly. ironic, bold deposits sleep blithely ironic, pending attainm -623|Customer#000000623|399883.4257|7887.60|INDONESIA|k3IlPSC4FKB13 hc6omhVs1ibvqeWEV|19-113-202-7085|se around the ideas. accounts cajole blithely slyly ironic requests. b -9151|Customer#000009151|396562.0295|5691.95|IRAQ|UKiN9OQupR,m5NtvSntbI8JBeo|21-834-147-4906|the deposits. pending, ironic foxes haggle along the regular, bold req -14819|Customer#000014819|396271.1036|7308.39|FRANCE|wS8yiQtE63FfoO6RKUzuVf6iBTmXBq16u|16-769-398-7926|ending asymptotes use fluffily quickly bold instructions. slyly bold dependencies sleep carefully pending a -13478|Customer#000013478|395513.1358|-778.11|KENYA|S5izwjM1 hCoUccO2JMepYwNyBSqI,ay|24-983-202-8240| requests boost quickly according to the express sheaves. blithely unusual packages sleep +8242|Customer#000008242|622786.7297|6322.09|ETHIOPIA|P2n4nJhy,UqSo2s43YfSvYJDZ6lk|15-792-676-1184|slyly regular packages haggle carefully ironic ideas. courts are furiously. furiously unusual theodolites cajole. i +7714|Customer#000007714|557400.3053|9799.98|IRAN|SnnIGB,SkmnWpX3|20-922-418-6024|arhorses according to the blithely express re +11032|Customer#000011032|512500.9641|8496.93|UNITED KINGDOM|WIKHC7K3Cn7156iNOyfVG3cZ7YqkgsR,Ly|33-102-772-3533|posits-- furiously ironic accounts are again +2455|Customer#000002455|481592.4053|2070.99|GERMANY|RVn1ZSRtLqPlJLIZxvpmsbgC02|17-946-225-9977|al asymptotes. finally ironic accounts cajole furiously. permanently unusual theodolites aro +12106|Customer#000012106|479414.2133|5342.11|UNITED STATES|wth3twOmu6vy|34-905-346-4472|ly after the blithely regular foxes. accounts haggle carefully alongside of the blithely even ideas. +8530|Customer#000008530|457855.9467|9734.95|MOROCCO|GMQyte94oDM7eD7exnkj 4hH9yq3|25-736-932-5850|slyly asymptotes. quickly final deposits in +13984|Customer#000013984|446316.5104|3482.28|IRAN|qZXwuapCHvxbX|20-981-264-2952|y unusual courts could wake furiously +1966|Customer#000001966|444059.0382|1937.72|ALGERIA|jPv1 UHra5JLALR5Isci5u0636RoAu7t vH|10-973-269-8886|the blithely even accounts. final deposits cajole around the blithely final packages. +11026|Customer#000011026|417913.4142|7738.76|ALGERIA|XorIktoJOAEJkpNNMx|10-184-163-4632|ly even dolphins eat along the blithely even instructions. express attainments cajole slyly. busy dolphins in +8501|Customer#000008501|412797.5100|6906.70|ARGENTINA|776af4rOa mZ66hczs|11-317-552-5840|y final deposits after the fluffily even accounts are slyly final, regular +1565|Customer#000001565|412506.0062|1820.03|BRAZIL|EWQO5Ck,nMuHVQimqL8dLrixRP6QKveXcz9QgorW|12-402-178-2007|ously regular accounts wake slyly ironic idea +14398|Customer#000014398|408575.3600|-602.24|UNITED STATES|GWRCgIPHajtU21vICVvbJJerFu2cUk|34-814-111-5424|s. blithely even accounts cajole blithely. even foxes doubt-- +1465|Customer#000001465|405055.3457|9365.93|INDIA|tDRaTC7UgFbBX7VF6cVXYQA0|18-807-487-1074|s lose blithely ironic, regular packages. regular, final foxes haggle c +12595|Customer#000012595|401402.2391|-6.92|INDIA|LmeaX5cR,w9NqKugl yRm98|18-186-132-3352|o the busy accounts. blithely special gifts maintain a +961|Customer#000000961|401198.1737|6963.68|JAPAN|5,81YDLFuRR47KKzv8GXdmi3zyP37PlPn|22-989-463-6089|e final requests: busily final accounts believe a +14299|Customer#000014299|400968.3751|6595.97|RUSSIA|7lFczTya0iM1bhEWT|32-156-618-1224|carefully regular requests. quickly ironic accounts against the ru +623|Customer#000000623|399883.4257|7887.60|INDONESIA|HXiFb9oWlgqZXrJPUCEJ6zZIPxAM4m6|19-113-202-7085|requests. dolphins above the busily regular dependencies cajole after +9151|Customer#000009151|396562.0295|5691.95|IRAQ|7gIdRdaxB91EVdyx8DyPjShpMD|21-834-147-4906|ajole fluffily. furiously regular accounts are special, silent account +14819|Customer#000014819|396271.1036|7308.39|FRANCE|w8StIbymUXmLCcUag6sx6LUIp8E3pA,Ux|16-769-398-7926|ss, final asymptotes use furiously slyly ironic dependencies. special, express dugouts according to the dep +13478|Customer#000013478|395513.1358|-778.11|KENYA|9VIsvIeZrJpC6OOdYheMC2vdtq8Ai0Rt|24-983-202-8240|r theodolites. slyly unusual pinto beans sleep fluffily against the asymptotes. quickly r diff --git a/test/src/test/resources/tpch/sf0.1/q11.csv b/test/src/test/resources/tpch/sf0.1/q11.csv new file mode 100644 index 0000000000..ce11bed399 --- /dev/null +++ b/test/src/test/resources/tpch/sf0.1/q11.csv @@ -0,0 +1,2542 @@ +ps_partkey|value +12098|16227681.21 +5134|15709338.52 +13334|15023662.41 +17052|14351644.20 +3452|14070870.14 +12552|13332469.18 +1084|13170428.29 +5797|13038622.72 +12633|12892561.61 +403|12856217.34 +1833|12024581.72 +2084|11502875.36 +17349|11354213.05 +18427|11282385.24 +2860|11262529.95 +17852|10934711.93 +9871|10889253.68 +12231|10841131.39 +6366|10759786.81 +12146|10257362.66 +5043|10226395.88 +12969|10125777.93 +1504|10004397.08 +14327|9981697.08 +134|9965150.66 +6860|9805871.26 +10624|9776138.40 +15819|9775705.31 +3293|9674928.12 +19865|9653766.83 +8870|9648981.87 +15778|9636332.82 +12360|9635023.92 +14389|9475588.34 +3257|9451029.24 +9476|9435207.28 +19629|9391236.40 +7179|9386222.25 +15723|9383900.80 +4054|9313810.02 +2380|9307751.22 +19084|9302916.80 +4703|9280804.80 +18791|9267017.97 +19994|9235972.92 +9149|9121803.90 +15118|9120819.50 +6116|9079369.20 +7052|9077468.92 +14147|9069193.78 +7305|9035228.53 +9130|9024379.25 +16698|8991337.95 +1553|8977226.10 +16777|8961355.62 +1402|8953779.12 +18963|8934063.40 +8358|8930611.48 +17547|8860117.00 +5128|8844222.75 +17063|8840649.60 +15490|8833581.40 +14761|8817240.56 +19601|8791341.02 +16160|8740262.76 +13597|8702669.82 +13653|8693170.16 +16383|8691505.92 +325|8667741.28 +8879|8667584.38 +10564|8667098.22 +17429|8661827.90 +17403|8643350.30 +18294|8616583.43 +4181|8592684.66 +13008|8567480.64 +13211|8537000.01 +1884|8532644.34 +11101|8530945.32 +11562|8528028.57 +15878|8523591.84 +834|8522135.27 +2423|8517902.85 +15383|8513433.11 +18119|8507611.80 +7389|8506099.20 +5016|8489784.15 +17473|8444766.24 +6669|8428618.46 +384|8418472.27 +12052|8411519.28 +17562|8409022.83 +8128|8379149.47 +13813|8374830.84 +12800|8318626.78 +10887|8315019.36 +1644|8285453.08 +16638|8274568.00 +1394|8255140.60 +7219|8254985.30 +13358|8253829.80 +5562|8252365.16 +14861|8242296.15 +15416|8196621.53 +1963|8192206.61 +2841|8148678.45 +6635|8122918.28 +3609|8099812.05 +6372|8093695.06 +5231|8091704.18 +8755|8085017.03 +4071|8083755.18 +4977|8058501.72 +11873|8057540.30 +12127|8051142.94 +2401|8049525.94 +15964|8037547.75 +10129|8030855.04 +7605|8028622.42 +9327|8022291.30 +11814|7983589.59 +4646|7981660.60 +6032|7981511.28 +1076|7977074.75 +4043|7971929.90 +8932|7967222.19 +13705|7953344.52 +16855|7923819.00 +3234|7920022.00 +17752|7901362.77 +2097|7892993.17 +18599|7890774.40 +19596|7874564.59 +11392|7861172.48 +18121|7857581.60 +17452|7838465.36 +6076|7821316.80 +15134|7804760.25 +8641|7802917.15 +2134|7800185.43 +16352|7797112.00 +19312|7775952.24 +2895|7759327.23 +12860|7758135.21 +153|7755681.28 +15089|7735438.26 +14797|7725353.16 +15946|7722773.88 +10919|7722425.36 +9867|7721597.78 +11881|7713136.42 +16552|7708518.15 +6925|7703999.68 +12147|7703826.98 +8923|7702690.28 +16116|7697970.84 +10661|7673830.20 +17094|7665368.16 +18648|7650862.02 +12172|7641326.40 +15123|7633032.50 +4993|7600570.80 +17162|7592062.56 +13506|7580809.83 +3436|7575616.33 +6271|7559793.93 +13314|7555156.63 +17242|7550949.50 +2753|7549574.06 +7391|7543159.68 +7418|7541449.65 +116|7520874.24 +12436|7520234.54 +1181|7494798.28 +12963|7491248.10 +213|7479470.28 +7114|7477681.20 +18521|7476478.30 +8973|7458603.67 +4202|7454095.74 +12009|7442105.40 +10609|7429346.40 +5622|7424142.66 +5143|7422760.28 +898|7414133.80 +12257|7408190.63 +6740|7400350.35 +1146|7394394.48 +5485|7378181.94 +8437|7376353.59 +6531|7362366.78 +16463|7362106.80 +10412|7359552.42 +12857|7340801.58 +12354|7332343.20 +7616|7320032.37 +3426|7312340.41 +8622|7307266.33 +6818|7304782.10 +3705|7299380.10 +12733|7298398.17 +1574|7293446.04 +10554|7289933.72 +9363|7284647.70 +4611|7282115.00 +7857|7266948.92 +9616|7265005.30 +15860|7254466.66 +15554|7247592.51 +3422|7247586.45 +9134|7236404.67 +17408|7220083.60 +15853|7219984.90 +9266|7218517.11 +1881|7208346.45 +10148|7205335.83 +8860|7202401.44 +8373|7189039.50 +10859|7188990.69 +12670|7188177.22 +2553|7180006.02 +19346|7176797.25 +1681|7160169.84 +15225|7158861.32 +1052|7158586.00 +77|7155531.10 +7231|7155250.38 +12622|7137408.42 +9814|7105363.14 +8695|7103187.00 +13174|7099182.53 +6179|7095134.05 +6451|7082495.36 +19860|7073206.83 +9307|7059973.68 +7819|7055963.04 +10556|7053491.07 +9366|7048690.74 +12124|7040021.31 +11476|7037906.76 +19245|7034045.24 +7562|7030275.79 +12290|7020372.06 +18118|7003396.80 +1253|7001569.62 +8662|6999834.27 +1779|6997385.73 +15386|6996871.79 +147|6989079.88 +9562|6983076.90 +3958|6969833.22 +7211|6966606.67 +12842|6923277.66 +4368|6918783.95 +11131|6918656.78 +4628|6894893.82 +5879|6881367.14 +16586|6865931.80 +32|6852925.59 +12119|6842773.70 +1371|6831137.52 +6136|6827917.01 +13857|6824240.60 +1074|6821747.88 +1863|6821522.19 +14597|6817385.66 +9271|6783068.88 +6389|6781075.68 +11703|6776538.36 +13701|6768880.56 +14880|6763788.24 +18428|6763670.54 +1006|6762065.94 +4927|6756765.21 +11659|6755246.68 +6815|6738928.35 +14367|6733857.20 +10703|6730936.46 +3150|6727920.40 +9963|6725919.35 +10438|6710153.62 +4745|6682153.67 +15297|6681711.28 +10848|6678666.25 +11749|6677895.73 +16739|6675549.12 +14915|6672248.66 +19841|6669191.20 +628|6666892.90 +1650|6657178.32 +7069|6648672.24 +7108|6646445.96 +8887|6641655.90 +18735|6636457.56 +3711|6632665.38 +2325|6630475.92 +6484|6622965.20 +2643|6617304.98 +7895|6615061.26 +12840|6604848.54 +4314|6600905.71 +19077|6591091.97 +17476|6576029.00 +7039|6559838.90 +8106|6558223.02 +2391|6557120.08 +7717|6547706.88 +12476|6546988.15 +9155|6540793.60 +360|6530297.41 +6383|6529336.02 +4830|6518998.92 +12600|6511549.46 +13740|6508057.92 +4678|6507847.98 +17815|6502284.76 +7329|6490811.95 +13884|6490063.10 +5147|6487069.00 +16548|6482024.50 +14144|6476413.40 +10181|6474984.88 +11031|6463308.02 +19958|6461506.38 +6043|6458177.64 +10060|6455476.89 +9144|6454042.05 +7043|6448019.98 +17346|6444307.52 +13963|6442014.48 +7111|6441947.07 +14140|6439955.54 +2327|6438977.28 +14812|6437152.54 +16755|6430895.36 +14840|6430549.14 +14134|6422079.26 +12655|6405496.79 +1518|6390148.22 +9888|6385033.02 +7387|6384005.18 +5393|6381083.04 +11057|6375974.22 +16818|6368828.80 +4576|6364925.71 +19644|6350000.33 +139|6336065.55 +11735|6334305.90 +10108|6332055.99 +15628|6329801.34 +4349|6314949.68 +7048|6313868.55 +17119|6298935.38 +18597|6291416.31 +2488|6286372.05 +2296|6275519.25 +4343|6272834.20 +9958|6267714.61 +2147|6267475.32 +9368|6254578.92 +13134|6252432.76 +10119|6251456.25 +2093|6249342.36 +2392|6237476.56 +17231|6233509.18 +3773|6226654.68 +9839|6214044.10 +19349|6213969.30 +7869|6212751.00 +8158|6210279.24 +13179|6205773.65 +2349|6205589.26 +9052|6200729.70 +1744|6189967.36 +597|6183103.47 +16721|6176606.60 +7498|6176277.25 +15157|6176222.50 +17524|6171107.36 +7922|6170906.07 +6615|6170738.42 +2706|6165991.65 +16432|6162740.68 +16473|6162427.96 +12825|6161595.60 +18813|6154678.55 +1030|6146500.28 +2571|6145772.43 +7707|6144754.71 +10327|6137612.00 +4710|6132346.56 +3649|6130602.63 +4893|6128461.24 +12844|6128191.24 +8794|6122690.28 +1157|6117749.22 +10895|6112017.68 +16166|6108250.98 +11920|6107122.56 +5621|6102123.56 +6141|6093826.56 +14076|6086671.08 +15884|6080485.59 +4814|6080337.96 +5814|6079842.96 +1134|6078685.20 +19048|6071813.28 +303|6070601.35 +15211|6065678.06 +1020|6054168.00 +11292|6052522.83 +7134|6049865.25 +14119|6049619.55 +2389|6042429.12 +5926|6034269.52 +8553|6030922.95 +18814|6023255.17 +12702|6023190.99 +2644|6020931.33 +19628|6010704.00 +18112|6008707.52 +13860|6008170.29 +1456|6005092.14 +1633|6002068.85 +2301|6000302.29 +10740|5999809.05 +2630|5997008.43 +8818|5992296.90 +10043|5990594.02 +653|5987942.83 +6829|5985990.66 +15179|5977727.52 +9663|5973523.92 +5863|5973328.92 +3628|5966340.09 +7618|5960155.86 +2588|5952648.56 +4865|5949383.40 +4233|5944699.60 +13390|5944104.69 +16321|5942714.70 +9653|5941308.50 +18884|5925548.24 +4394|5920927.14 +19774|5916723.12 +1257|5914052.36 +2963|5911917.77 +17157|5899573.02 +383|5884693.36 +11709|5884134.48 +18135|5871431.61 +13169|5869736.88 +2932|5868995.80 +2888|5863229.30 +6820|5853106.80 +18622|5850951.60 +9066|5846052.72 +19840|5832251.40 +6325|5827298.43 +14092|5823711.72 +11532|5823277.12 +18043|5815248.70 +3932|5809134.60 +10364|5808371.40 +1179|5808303.24 +11441|5799378.33 +15767|5798263.26 +14063|5797204.00 +11383|5793893.12 +10065|5781764.45 +17785|5766838.76 +18349|5761765.77 +14824|5760339.78 +14699|5759490.18 +11628|5755137.20 +4403|5752376.64 +13090|5751949.25 +15332|5744606.28 +17573|5744384.15 +12895|5741007.02 +13577|5739209.94 +16594|5732523.64 +8497|5727509.84 +2872|5724068.72 +16181|5721788.16 +6639|5712041.22 +13095|5708798.25 +4535|5693341.20 +10956|5692585.50 +19755|5686913.37 +12995|5682200.41 +13157|5681454.94 +1887|5681341.24 +18472|5680356.00 +19814|5679360.00 +18583|5669360.52 +3894|5664385.49 +1740|5659552.04 +62|5659470.16 +16532|5653779.46 +995|5648973.45 +7486|5646851.87 +19007|5642710.93 +13060|5642024.64 +12371|5635710.45 +2280|5634077.40 +3115|5631352.32 +11107|5631252.46 +5873|5629125.75 +14743|5628732.80 +2224|5624746.62 +2653|5623859.99 +17622|5623057.44 +14700|5615344.00 +14740|5613929.39 +6403|5611924.51 +6896|5609169.88 +10384|5607337.52 +16433|5605707.03 +5898|5604937.76 +4789|5600488.36 +8132|5593107.50 +3838|5592313.20 +13631|5586424.80 +11233|5585247.01 +849|5583516.45 +14653|5581550.45 +14788|5580433.00 +18181|5578562.88 +19815|5577102.62 +5584|5576692.20 +5385|5576420.19 +13780|5569028.61 +9342|5566783.71 +19056|5566524.12 +8189|5565694.74 +13808|5560721.96 +10635|5560058.55 +8304|5550784.41 +14257|5549164.06 +8999|5542100.10 +19134|5539312.56 +8360|5538031.10 +6397|5536651.92 +2597|5525317.76 +8631|5515909.38 +16729|5512663.65 +11861|5511785.93 +16853|5511689.91 +6341|5502790.08 +1312|5496649.40 +5566|5495885.87 +12519|5490649.97 +19032|5488105.02 +8231|5479312.50 +3026|5466732.32 +6388|5466168.80 +15349|5464571.52 +18985|5463897.13 +19848|5454266.40 +17378|5453284.74 +4000|5448690.39 +3710|5445822.53 +13181|5439774.06 +6420|5438325.32 +3644|5437772.14 +1117|5437024.97 +13027|5436968.46 +12884|5432632.34 +12781|5429161.08 +10084|5428231.62 +5640|5423318.58 +16208|5422901.40 +753|5416899.74 +4120|5413822.46 +12348|5412061.71 +1586|5411198.55 +2503|5411125.80 +1381|5397790.10 +19673|5397746.77 +19389|5394426.40 +15532|5386361.38 +3562|5380335.08 +19114|5375133.00 +3204|5372215.46 +6653|5365178.00 +3553|5363690.29 +12687|5361682.12 +3279|5357505.65 +9840|5350112.18 +8258|5347064.67 +11387|5345284.00 +15210|5341117.92 +15092|5340896.80 +6052|5339762.18 +14043|5339587.68 +6284|5336153.00 +6297|5332357.74 +16254|5326607.83 +18436|5326198.50 +14436|5325517.14 +10368|5319983.08 +6349|5317943.40 +19984|5317620.00 +19080|5310678.60 +1403|5306771.32 +5995|5305056.12 +13214|5299420.45 +19293|5297054.40 +7130|5289761.48 +9809|5286784.80 +9273|5277924.77 +16786|5260035.00 +11032|5256354.35 +17719|5246322.20 +3400|5244203.68 +8278|5243718.48 +7873|5241168.80 +9357|5239695.77 +2239|5235767.83 +18695|5223960.35 +19271|5216498.29 +4563|5214673.70 +1896|5210699.79 +15755|5210481.24 +17628|5209882.37 +5747|5206892.24 +18057|5204907.40 +5075|5204412.81 +5325|5190162.75 +17675|5183135.36 +18818|5181295.30 +11064|5180667.57 +12578|5177222.33 +3725|5169183.75 +11112|5161546.00 +4749|5161499.44 +7632|5159180.50 +13119|5151665.51 +5653|5140324.64 +16134|5137482.51 +5671|5136815.55 +18348|5132981.07 +562|5132487.25 +2562|5126763.83 +10304|5125180.00 +7622|5120719.98 +12755|5118213.92 +1814|5100705.58 +11269|5096671.33 +2964|5095253.72 +1616|5091834.00 +9294|5090753.53 +16793|5085330.54 +4999|5081651.75 +17209|5079029.28 +7151|5078937.60 +15522|5072469.60 +3056|5072329.55 +7612|5068322.87 +18453|5063892.92 +18324|5058901.22 +12266|5058186.75 +19394|5056235.73 +1713|5054968.05 +15681|5051569.63 +8274|5043328.00 +18160|5043074.83 +18253|5041572.00 +11840|5040590.04 +1532|5033171.00 +584|5031602.64 +12382|5028901.00 +14814|5022200.07 +19058|5019001.92 +4487|5016640.86 +8482|5015444.25 +18476|5011136.36 +12335|5003581.40 +4455|4997933.31 +14355|4992822.92 +15253|4992642.20 +14069|4983244.20 +17843|4977294.37 +9389|4975885.83 +14435|4971442.19 +13254|4959481.45 +9773|4955887.80 +7615|4952421.54 +6476|4947250.05 +9253|4945159.70 +14932|4934395.48 +13253|4932867.45 +19322|4931525.78 +16945|4931440.61 +731|4930191.93 +6540|4925114.51 +5148|4923048.00 +1934|4921196.90 +15402|4920840.72 +17914|4919607.04 +5416|4916041.92 +16734|4914205.27 +14967|4900262.08 +8706|4894595.58 +136|4891960.92 +19494|4886028.30 +8737|4880640.44 +7653|4879423.64 +4149|4875782.40 +7890|4872424.40 +11142|4871415.42 +10386|4863623.50 +8603|4861814.61 +2680|4861223.74 +4891|4858103.88 +19236|4855097.69 +14251|4854739.86 +18895|4853365.10 +17134|4852041.04 +4932|4843701.45 +10033|4841647.72 +1383|4839144.31 +18721|4837983.36 +8618|4833125.42 +17386|4831545.84 +3790|4830282.36 +1043|4825921.31 +12434|4822597.78 +18385|4819643.40 +6046|4817460.06 +5821|4814423.45 +10836|4814303.24 +6848|4813954.08 +6880|4804600.35 +11249|4800116.82 +11970|4799739.66 +14253|4796521.29 +7782|4793227.13 +75|4790042.88 +7076|4789347.34 +9566|4782531.80 +2137|4767931.74 +2336|4763870.79 +15362|4759043.38 +3284|4755048.76 +12964|4753627.48 +1781|4752835.20 +5454|4748342.98 +12597|4742077.84 +19120|4733459.96 +14884|4731499.44 +825|4730720.28 +14683|4730482.32 +5361|4726113.00 +12179|4725018.10 +1461|4710954.69 +9890|4709658.40 +13369|4705085.39 +11612|4701627.99 +3096|4699414.40 +10383|4697866.47 +11293|4697336.06 +3383|4695825.20 +6231|4694381.72 +7396|4691319.06 +17827|4688797.44 +15856|4683368.21 +8253|4678560.86 +12327|4677984.74 +4395|4676829.82 +4232|4676646.40 +14260|4670522.80 +15288|4669273.99 +17526|4668545.64 +9884|4662693.84 +2118|4660352.78 +4524|4653956.60 +19090|4650872.94 +3928|4649359.44 +14325|4647762.17 +15476|4643469.04 +4179|4639931.76 +14408|4639631.28 +19424|4634817.44 +3334|4633102.50 +9477|4628073.51 +11803|4625396.80 +14805|4618452.18 +463|4616307.28 +16628|4607490.96 +3116|4604463.10 +19962|4602949.47 +12859|4602870.55 +12063|4600708.45 +5648|4592273.25 +8556|4590726.86 +15281|4589425.41 +9414|4587426.90 +13951|4586281.25 +19328|4582624.82 +15963|4579705.50 +10773|4573276.20 +14179|4568816.00 +1895|4563988.16 +6408|4561496.39 +5958|4554000.00 +3653|4548134.40 +11218|4546237.92 +19327|4543987.77 +9572|4535941.16 +14556|4531464.75 +2475|4529761.50 +9631|4529261.56 +1901|4528592.55 +86|4528475.38 +9586|4527146.22 +17361|4519098.87 +8112|4514949.45 +13468|4499728.20 +18239|4497633.64 +10215|4494553.60 +6211|4492264.96 +836|4490945.10 +895|4489141.50 +19542|4488393.75 +4322|4487884.23 +2116|4486944.65 +553|4486075.48 +2515|4485188.26 +16286|4481470.47 +12271|4478224.95 +16570|4465818.00 +7995|4457574.66 +18396|4457229.60 +16331|4455735.48 +18157|4452196.63 +5271|4452040.01 +11622|4451244.84 +4052|4446397.34 +2864|4446008.38 +490|4442892.30 +19837|4434172.39 +4114|4433657.85 +11436|4433070.15 +6085|4431306.57 +9735|4430445.60 +17834|4416286.33 +8157|4416116.65 +18840|4414925.32 +13553|4412261.70 +12562|4411183.04 +14025|4403442.16 +17964|4400360.09 +636|4399863.84 +8390|4389024.33 +231|4387397.30 +9699|4385891.02 +10622|4384005.32 +14364|4383236.90 +10580|4381533.23 +10124|4369800.96 +10451|4368867.50 +4673|4367113.44 +11351|4362616.50 +4770|4362397.32 +12932|4362042.60 +10603|4357216.50 +19733|4348931.75 +4222|4348871.91 +17319|4347687.69 +3375|4346529.48 +14995|4338295.65 +7675|4337499.60 +15043|4333921.20 +4835|4332648.00 +4408|4332588.90 +5559|4330577.09 +7376|4328936.54 +18061|4328793.98 +2749|4328671.53 +6628|4328501.88 +5888|4323049.72 +18872|4322595.62 +5476|4319642.58 +1755|4318935.63 +10623|4315822.56 +18775|4314677.64 +3570|4312697.87 +11147|4310740.57 +6071|4307612.40 +10807|4306006.00 +9550|4299478.56 +657|4296794.19 +19669|4294640.90 +8532|4290651.60 +13469|4281715.62 +8809|4280778.80 +11301|4276847.95 +6147|4266879.92 +2612|4265962.35 +15699|4256118.72 +12300|4254409.11 +3494|4250810.60 +11040|4250030.20 +6190|4244046.80 +17616|4239937.50 +7271|4234407.00 +14048|4226977.44 +4456|4224684.98 +10012|4223841.21 +11175|4223704.14 +18675|4215406.86 +10792|4214898.57 +10806|4209678.32 +18749|4204787.00 +17410|4198025.28 +8032|4195430.00 +11094|4192304.94 +17582|4187341.44 +12246|4183230.95 +6640|4182968.80 +7346|4174707.60 +12747|4169865.81 +3869|4164957.44 +13106|4161902.08 +10547|4159541.36 +15289|4156205.76 +1679|4156156.64 +1126|4155593.08 +19106|4147439.52 +9705|4144024.20 +15324|4142518.56 +16544|4140375.72 +8812|4139322.81 +10772|4134101.64 +2800|4127150.08 +15549|4124704.64 +3607|4118697.57 +1980|4117633.72 +214|4113117.36 +19217|4104217.60 +2460|4098577.46 +19156|4093864.46 +18359|4092727.29 +12865|4092526.84 +14616|4092434.54 +908|4088856.20 +11791|4083804.97 +4157|4078345.60 +3857|4070872.87 +15114|4056112.50 +395|4052997.76 +17456|4051457.28 +10562|4050894.19 +10884|4050330.76 +12177|4049842.68 +15595|4040577.56 +15916|4036044.50 +7084|4035102.72 +4424|4034761.56 +10874|4031015.85 +4740|4030403.76 +16585|4030010.26 +18824|4028984.10 +14875|4028452.08 +13855|4024828.34 +10932|4024002.40 +9084|4021362.45 +14352|4018089.74 +18086|4015180.68 +9514|4013666.67 +15787|4013154.56 +714|4010249.44 +8811|4009588.90 +14386|4007210.88 +616|4004057.26 +7460|4003412.48 +866|4003182.54 +782|4001299.94 +8562|3999441.62 +1366|3994060.86 +2879|3993056.55 +16679|3992434.99 +17306|3990723.30 +13140|3982817.39 +17942|3980857.04 +6572|3977676.28 +3578|3977523.94 +15802|3969946.90 +336|3967938.38 +9807|3964469.60 +12104|3964273.40 +4271|3962359.28 +6702|3961657.44 +19763|3955582.75 +369|3953702.88 +4089|3953455.68 +2593|3946153.80 +590|3943841.16 +8325|3942118.75 +158|3941881.65 +12054|3938362.69 +18330|3938303.88 +5354|3936239.58 +8150|3925793.46 +8344|3921293.60 +6069|3921130.55 +4032|3920008.59 +17939|3917750.27 +7014|3914471.20 +2840|3913131.58 +1868|3912987.54 +10975|3911920.48 +5374|3910802.74 +11128|3908156.46 +18449|3907589.40 +11740|3907459.84 +2356|3907189.00 +5721|3901585.97 +4231|3900779.05 +4352|3899933.44 +432|3899836.44 +15321|3899516.58 +10296|3897015.14 +5647|3895088.16 +7386|3891916.51 +507|3891487.68 +3995|3887387.07 +4278|3882294.02 +18407|3880267.86 +6127|3879166.71 +145|3875277.24 +19269|3874685.76 +18257|3874454.89 +9068|3869767.74 +576|3860007.79 +4860|3852862.02 +18793|3849838.16 +15988|3847257.05 +6891|3846386.75 +3231|3846344.30 +15237|3845421.00 +9035|3844166.85 +7597|3838643.35 +16349|3837121.65 +2497|3827850.20 +3616|3827390.95 +11566|3826122.47 +18403|3822033.02 +2972|3821903.55 +812|3821523.72 +2043|3820561.36 +505|3818922.03 +8257|3815071.92 +6084|3814194.95 +11253|3813917.24 +366|3812257.88 +13632|3811601.32 +14298|3801412.42 +7092|3798729.48 +2058|3796109.04 +14820|3791195.86 +7157|3788690.82 +17211|3786030.17 +16644|3786019.25 +15693|3783662.19 +2627|3782394.60 +11231|3782077.60 +12696|3781761.66 +8705|3778077.00 +16052|3771577.04 +99|3760269.31 +2082|3757517.50 +872|3750005.34 +7126|3749138.92 +10302|3744475.25 +17122|3741012.98 +10080|3740107.10 +16021|3739611.20 +3074|3739224.96 +3142|3738811.02 +13213|3735116.25 +13442|3733132.14 +11542|3731000.12 +13732|3730444.90 +2608|3729372.40 +5|3725511.50 +19157|3723844.72 +18231|3721707.99 +8179|3714155.04 +12740|3708646.91 +11597|3706528.59 +13968|3702376.08 +6436|3687346.44 +9181|3687134.08 +564|3680200.80 +13464|3678406.20 +14084|3673790.38 +2755|3670593.69 +14284|3668640.80 +12178|3653392.48 +15730|3650258.30 +5560|3649569.59 +8594|3647140.56 +7032|3646439.54 +16846|3644843.10 +1530|3642838.08 +3978|3639712.05 +2897|3639442.32 +16625|3636527.54 +12029|3636339.72 +16830|3633448.57 +9597|3632662.11 +5533|3630338.67 +5181|3625965.93 +8131|3625738.62 +8560|3620761.26 +11860|3618746.25 +12008|3614604.40 +10737|3611990.64 +18208|3611596.10 +5119|3611038.20 +11958|3601654.65 +15124|3598278.20 +14058|3597490.02 +12270|3593912.10 +17793|3593318.95 +9385|3587327.84 +12814|3587083.84 +5304|3586230.61 +3631|3582841.65 +610|3581917.30 +19317|3580412.43 +128|3567004.56 +11616|3566154.80 +10176|3565392.15 +7349|3564110.64 +1712|3560408.43 +18860|3559340.60 +17617|3557516.00 +6443|3556296.96 +15408|3554814.56 +16350|3554388.63 +17436|3554105.13 +5740|3551324.68 +12181|3550218.54 +16895|3550119.30 +19995|3548839.70 +4968|3548306.87 +2257|3546692.29 +1825|3543198.78 +18989|3539038.08 +18727|3536081.40 +16165|3533789.84 +3249|3533709.87 +11731|3532875.00 +13032|3532415.79 +9377|3531582.08 +5883|3531479.00 +1211|3528833.40 +12065|3526948.10 +10866|3526146.66 +2073|3520131.30 +2378|3512186.20 +16860|3509693.07 +389|3507814.64 +15604|3505653.27 +11257|3502831.80 +1327|3502022.60 +16602|3501074.88 +1493|3498808.95 +8224|3498179.52 +622|3497158.36 +3072|3495958.72 +1478|3494880.48 +3125|3494169.90 +2052|3488438.08 +8476|3487191.28 +10735|3477740.76 +14860|3476235.84 +6586|3475745.10 +5130|3472024.50 +7181|3471306.30 +618|3467906.52 +15698|3464859.47 +17585|3462450.46 +2548|3456856.96 +2632|3456230.74 +2882|3453986.86 +12216|3452907.15 +4925|3452904.63 +9012|3442581.36 +6667|3430076.40 +17958|3424962.56 +6093|3424241.92 +10648|3417414.00 +1462|3413248.61 +2569|3412388.82 +18616|3409880.91 +7368|3408036.45 +3110|3407374.60 +10824|3406819.29 +11510|3404701.96 +4840|3397236.40 +4449|3396993.60 +1358|3396616.32 +3885|3395817.60 +13381|3391953.52 +1655|3383051.51 +282|3381785.42 +4928|3374270.48 +3199|3372488.80 +16086|3370710.65 +8612|3362922.50 +19597|3360764.00 +8867|3354400.11 +4098|3353574.28 +12617|3351499.05 +14365|3347296.00 +10443|3345493.10 +76|3342081.82 +11585|3341941.22 +4383|3338960.27 +13910|3335964.16 +8076|3332449.89 +16005|3332190.40 +2622|3329364.45 +12822|3321183.52 +17076|3320398.06 +5392|3320357.15 +18628|3319615.84 +13695|3318525.99 +10326|3318274.16 +9109|3317833.90 +1489|3317620.80 +3378|3315948.00 +7738|3312979.20 +1844|3312277.36 +19963|3307500.00 +2436|3306419.05 +886|3302180.70 +15475|3301693.50 +6327|3300680.78 +6050|3299460.20 +9876|3298410.05 +19586|3291131.25 +14349|3289862.52 +10993|3287980.57 +18784|3286752.12 +1800|3285466.24 +990|3284595.50 +3823|3281992.94 +15737|3279305.96 +19518|3276759.63 +9032|3272440.32 +7786|3271217.28 +8648|3271162.44 +5532|3270187.97 +15914|3268520.98 +16065|3265068.84 +11212|3264657.03 +13229|3262022.28 +15827|3260862.72 +1582|3260340.00 +3827|3260093.76 +3546|3259244.07 +15849|3258918.00 +14856|3258379.40 +2028|3255013.96 +6618|3254581.95 +17461|3252926.88 +13551|3241602.20 +19561|3239795.32 +2276|3236172.30 +14203|3234649.39 +7757|3231351.84 +122|3226213.88 +12954|3225943.00 +647|3224783.76 +12383|3223989.44 +3831|3223126.60 +16836|3222260.73 +4565|3221597.44 +19426|3218106.54 +17855|3217813.02 +5624|3207777.36 +8368|3203376.45 +9480|3200904.00 +11181|3199500.53 +8981|3197864.00 +16426|3195995.97 +1648|3195558.90 +14404|3192729.60 +17867|3188571.00 +18117|3183229.04 +14289|3182261.60 +53|3182256.00 +15546|3180180.04 +16245|3178277.46 +1597|3176247.48 +1653|3173456.64 +2845|3171619.61 +15906|3171187.54 +18304|3168571.50 +14068|3167367.60 +6837|3165012.48 +9446|3164446.52 +18889|3156140.96 +16587|3154210.20 +7705|3152977.38 +1120|3151591.17 +17665|3148848.00 +5311|3146721.86 +14157|3144707.32 +7996|3131351.04 +8663|3130526.32 +18271|3127800.96 +6446|3125685.96 +6972|3125007.06 +2572|3123186.83 +13536|3122527.54 +6196|3122172.48 +9338|3121262.40 +11992|3118647.55 +2580|3118284.37 +9098|3117494.10 +5118|3112661.96 +10184|3109293.40 +9932|3105818.24 +18545|3102273.32 +10963|3099314.50 +8405|3097121.12 +9037|3095195.00 +179|3091107.28 +1930|3090915.80 +17723|3090624.66 +4308|3089472.75 +8702|3080129.92 +18621|3079984.80 +4501|3079781.10 +3590|3079049.42 +18264|3078858.44 +15648|3078564.06 +5998|3073264.00 +16904|3072610.80 +3794|3071333.09 +3147|3068485.32 +17221|3068337.22 +4709|3067523.31 +18017|3066743.41 +15613|3063987.86 +16271|3057051.34 +13621|3054774.59 +12919|3054518.50 +12493|3050836.30 +15838|3050645.95 +3273|3048955.15 +8324|3046011.25 +13628|3045324.50 +5522|3044408.50 +2202|3043132.05 +19052|3042566.55 +5767|3041871.70 +17895|3036452.22 +12586|3036386.30 +12425|3035041.52 +13517|3034351.47 +2363|3033336.60 +15060|3032598.51 +6764|3032591.10 +340|3030522.00 +4723|3028910.25 +3566|3027858.61 +17796|3026838.96 +15384|3023792.64 +16336|3010813.56 +679|3010713.30 +7554|3010667.80 +14553|3009756.96 +8379|3009745.17 +15436|3007499.77 +12471|3003991.86 +18059|3003037.53 +8536|3000746.00 +19033|2999373.28 +18179|2996151.20 +10711|2996143.17 +17271|2994264.79 +13932|2989023.58 +3101|2987788.16 +14550|2977853.65 +3080|2977232.58 +14533|2976490.49 +14439|2975313.24 +9237|2973124.78 +1205|2971470.28 +12361|2963419.47 +429|2962631.88 +3970|2960418.45 +8403|2957698.45 +1098|2957514.00 +7932|2955046.14 +16266|2952298.38 +19386|2948854.48 +13147|2947037.91 +2720|2947011.08 +3840|2944219.35 +13482|2942474.88 +9436|2940396.21 +19779|2937105.96 +18032|2933224.38 +7743|2932733.77 +14620|2930766.89 +4606|2927832.59 +18076|2924134.83 +19276|2918176.20 +7483|2915918.95 +8575|2915132.64 +11052|2913140.88 +17251|2908345.80 +8788|2907935.93 +10960|2906511.14 +18782|2903643.78 +19988|2897461.53 +726|2896009.27 +19942|2894251.36 +10864|2892252.48 +17840|2891563.22 +18717|2888939.96 +12391|2886051.30 +18219|2885921.06 +15100|2883342.33 +2491|2880385.74 +12389|2879696.96 +3880|2877770.24 +18579|2874542.48 +13647|2873838.34 +15758|2873804.92 +12917|2873659.60 +18866|2873616.26 +13894|2872986.12 +15200|2872571.93 +9628|2872404.56 +8568|2871598.08 +8389|2870237.88 +5788|2867210.18 +19450|2863310.66 +9440|2863162.92 +16795|2860135.41 +19643|2858987.80 +1974|2856825.84 +14622|2852089.12 +6885|2851437.62 +12532|2848992.64 +1087|2847858.80 +5777|2846407.41 +5629|2846076.12 +6316|2840544.65 +12767|2840514.12 +12134|2840036.91 +14476|2839853.01 +803|2838388.16 +18964|2836942.44 +6020|2833459.20 +10401|2832688.74 +1323|2829964.50 +1151|2829662.44 +1458|2824034.43 +2271|2820756.53 +18740|2814140.80 +7348|2811730.95 +4281|2807190.52 +8043|2804706.24 +3843|2804217.96 +7813|2802350.88 +347|2802245.52 +745|2801725.10 +10388|2799170.58 +18100|2793358.50 +19043|2789013.80 +10644|2787797.01 +16170|2787402.80 +398|2782729.05 +9370|2780078.13 +14504|2780036.04 +1210|2778485.76 +13385|2777445.62 +3799|2775223.60 +11325|2769766.02 +3489|2769554.52 +17181|2769028.50 +6964|2766653.78 +7381|2764898.80 +6253|2764394.64 +5975|2760819.72 +11996|2760687.86 +7570|2758977.12 +4387|2757672.00 +9014|2755367.42 +9403|2748021.66 +11653|2739731.07 +17697|2739312.29 +958|2738032.00 +18816|2737140.00 +14104|2735008.64 +15966|2732250.20 +17912|2724160.95 +7089|2720170.04 +16032|2718976.18 +16891|2717293.32 +19579|2716909.86 +17470|2715048.84 +12408|2712556.52 +4763|2711800.90 +1138|2709709.81 +7363|2708414.40 +7877|2705439.45 +17532|2703698.68 +10512|2701235.92 +11957|2700133.22 +2455|2699593.88 +15119|2696860.80 +9868|2696801.52 +14172|2695307.48 +16120|2689337.82 +13958|2679025.28 +15169|2676686.04 +2648|2672232.00 +6164|2671317.32 +12701|2669216.40 +16382|2669034.54 +15588|2667212.10 +14830|2666758.15 +9119|2665812.24 +1622|2665206.50 +878|2664045.79 +13269|2662784.12 +619|2655417.63 +18386|2653795.02 +2501|2652260.40 +2310|2651631.09 +19420|2649395.61 +4895|2645152.27 +7553|2643682.07 +17814|2642781.44 +16097|2642500.00 +10995|2640811.16 +14895|2637733.72 +18546|2637026.71 +9875|2631358.80 +9591|2626899.54 +6001|2625893.76 +7739|2624573.28 +10431|2624379.54 +4544|2615313.75 +16387|2603195.76 +18375|2601407.83 +8395|2598728.44 +18853|2593356.36 +4900|2592813.15 +1302|2592197.76 +17032|2589806.40 +14292|2589749.56 +43|2587359.58 +5221|2587024.04 +397|2579751.46 +17890|2579674.24 +12157|2575510.48 +7340|2574645.83 +19368|2572618.95 +8848|2570819.15 +13789|2570243.26 +14596|2568234.24 +8408|2567434.41 +19726|2565750.42 +13964|2565579.12 +7740|2563027.50 +14768|2560392.60 +11734|2559062.22 +10294|2558257.97 +15032|2557926.22 +9127|2556379.80 +2181|2553175.00 +16653|2552229.68 +3866|2549994.79 +16814|2548710.76 +1866|2545838.40 +3512|2532626.80 +4145|2529786.15 +12120|2528298.72 +644|2528123.05 +15379|2525181.01 +6392|2524063.08 +2652|2521456.80 +3363|2519202.23 +19167|2517993.18 +16042|2516599.92 +2892|2511854.40 +5711|2509401.72 +14591|2506344.69 +6564|2506277.34 +1231|2505421.24 +5049|2502603.00 +14576|2501606.69 +10211|2500852.20 +293|2493168.48 +7371|2491134.65 +18154|2491047.20 +9494|2489825.52 +14836|2480432.40 +19471|2480403.75 +802|2478998.33 +12541|2477242.60 +15065|2473563.94 +15995|2472803.20 +9408|2471953.56 +9776|2470447.90 +17325|2468989.05 +3391|2468317.72 +16123|2467022.22 +18758|2463798.06 +407|2460304.47 +6840|2456170.78 +9995|2455155.36 +3877|2453696.65 +5817|2452493.13 +14122|2452226.22 +16699|2450273.98 +8921|2450116.48 +15103|2449861.20 +7637|2449628.72 +3076|2443927.38 +6648|2443248.95 +17116|2442263.72 +1645|2440838.40 +3181|2440017.60 +5966|2431558.08 +15882|2428947.30 +7529|2428381.28 +12836|2427897.33 +18052|2427637.76 +13616|2426638.50 +16615|2424775.08 +18147|2424412.68 +4586|2424123.90 +14403|2423141.96 +11606|2422794.31 +13526|2422212.80 +3677|2421404.46 +5553|2418506.21 +12109|2416514.17 +13118|2415931.80 +1563|2408855.40 +16591|2408045.39 +6411|2404918.53 +10272|2402834.48 +10597|2400247.68 +13700|2398035.86 +9548|2397147.90 +14963|2395781.09 +13325|2390637.58 +13864|2388067.88 +7450|2383447.71 +9275|2382868.40 +5829|2378037.92 +13437|2377806.54 +13594|2375046.30 +11442|2374591.08 +15619|2374052.38 +9063|2374035.84 +5990|2368686.50 +7811|2363829.26 +9525|2362974.53 +5597|2361031.84 +8963|2360774.00 +1709|2359839.29 +15814|2358656.64 +17613|2357519.04 +5022|2354550.45 +17740|2354242.83 +3388|2351042.26 +13773|2348739.12 +14467|2348665.04 +11544|2345324.45 +349|2344664.13 +10356|2340862.72 +18272|2338754.60 +4627|2337430.84 +327|2335298.46 +19846|2332224.73 +10814|2330319.60 +13102|2326122.75 +18867|2323972.00 +2824|2323315.08 +19117|2319911.10 +1906|2319757.60 +245|2319450.90 +17318|2317860.39 +3862|2316453.72 +8100|2313874.12 +2958|2312239.47 +10263|2308514.06 +13814|2304940.40 +9394|2303161.74 +18080|2299416.78 +1271|2289526.98 +3327|2278474.48 +8740|2278405.92 +8119|2276428.17 +3368|2274373.62 +7963|2272300.80 +2151|2270932.72 +16995|2270264.68 +9918|2269733.07 +503|2268535.25 +16692|2256484.50 +793|2254198.72 +16455|2252361.86 +6644|2249521.82 +17280|2249437.50 +6813|2248982.00 +4674|2246915.32 +16325|2244369.80 +182|2243290.00 +4626|2242474.35 +10860|2241291.60 +14034|2241220.80 +2476|2240855.20 +4253|2239985.64 +3211|2239871.02 +1290|2233313.00 +8479|2232189.04 +11895|2231607.00 +3487|2230171.62 +14870|2229915.37 +16328|2229483.96 +18585|2228215.50 +7638|2228208.08 +5436|2225672.28 +14594|2223005.07 +4532|2215711.02 +7586|2210562.51 +11870|2205182.82 +18487|2203653.60 +9179|2202720.52 +16500|2201185.31 +3679|2200592.70 +12803|2198295.00 +18056|2196741.90 +11396|2195645.64 +5087|2194120.72 +8067|2192048.64 +15357|2191646.58 +4491|2189713.50 +208|2189046.80 +10958|2188766.82 +9126|2188410.50 +15084|2184327.02 +18850|2183309.52 +3398|2180250.00 +16137|2177318.76 +211|2174808.96 +18422|2174381.00 +15840|2173510.40 +19553|2173079.77 +8221|2169992.16 +17000|2169611.16 +6755|2168505.15 +10817|2167710.68 +8327|2167650.60 +543|2167368.00 +4553|2163371.52 +15019|2162288.00 +334|2162178.48 +8516|2161479.04 +11349|2158941.88 +3902|2157027.86 +14731|2155302.24 +326|2153380.08 +11403|2151242.30 +11657|2150446.08 +9496|2149219.01 +8110|2149120.13 +5153|2148527.25 +884|2148324.98 +8637|2146185.10 +2364|2145790.72 +12386|2145001.47 +10133|2144903.96 +9895|2143324.80 +13755|2142539.40 +4327|2138501.40 +3369|2137408.76 +5815|2136985.00 +19357|2132657.28 +2675|2124158.72 +17869|2123991.72 +11702|2122132.99 +17257|2117850.64 +9952|2116686.32 +3881|2111457.15 +10951|2111185.58 +2128|2109702.30 +6699|2106578.40 +3155|2103636.64 +16649|2101956.20 +15257|2100297.75 +9978|2099566.56 +16810|2098301.44 +10653|2093388.70 +10476|2092766.48 +10883|2087495.28 +9704|2086967.61 +1119|2085182.84 +19139|2079788.34 +2144|2078391.14 +9135|2076377.80 +18548|2075584.32 +10545|2075230.35 +6220|2074341.72 +8616|2072887.65 +5230|2072161.74 +13916|2070504.72 +4299|2069922.96 +894|2069688.16 +17847|2063367.04 +18879|2061902.25 +13036|2061600.17 +10606|2060492.40 +9454|2060016.48 +118|2059808.86 +9601|2059715.76 +13769|2057668.08 +1987|2057289.27 +13863|2055368.00 +13562|2054754.24 +1840|2054183.92 +17995|2053221.90 +17389|2051128.20 +15168|2045987.49 +2139|2045365.40 +4024|2044243.10 +8964|2041648.85 +181|2040167.04 +7628|2039548.92 +3|2038846.09 +15553|2036958.91 +11355|2035405.60 +13006|2034991.20 +3091|2031393.51 +1281|2030628.48 +1408|2028621.66 +18211|2024538.67 +2287|2020754.32 +6228|2019198.82 +4362|2018495.25 +10873|2013280.32 +7383|2009581.92 +1386|2006544.26 +9820|2005815.76 +18134|2003409.73 +15727|2000654.50 +157|2000148.16 +19571|1999891.11 +17728|1997944.40 +5278|1996644.21 +17737|1994653.76 +10220|1989890.98 +1397|1984509.22 +6195|1983928.26 +4270|1983726.95 +16965|1983286.25 +1683|1980638.64 +13086|1978609.40 +7124|1974039.38 +5211|1973843.76 +6794|1973149.47 +257|1973035.44 +6995|1968281.55 +8447|1967292.70 +15873|1967257.89 +12862|1964014.13 +8295|1961467.08 +931|1958825.22 +6876|1957359.48 +1932|1954592.40 +1061|1952688.06 +18108|1951143.67 +5138|1950861.00 +12598|1950211.61 +10829|1943924.62 +11950|1941211.00 +12076|1939323.96 +2176|1938691.37 +6616|1937401.88 +5893|1934358.58 +976|1933066.80 +13173|1932557.52 +14947|1929229.98 +16857|1928814.80 +13403|1928702.88 +4819|1926969.68 +13127|1926929.83 +6871|1926787.68 +15465|1925145.09 +1131|1920005.50 +11845|1913576.40 +8364|1909122.20 +16588|1904272.37 +6759|1903906.29 +11586|1901895.65 +8145|1901787.66 +17333|1897297.20 +13290|1890633.75 +6499|1887621.00 +4881|1887535.92 +7147|1886710.20 +3883|1886567.78 +18911|1885597.12 +11336|1883573.60 +8653|1883275.76 +19476|1881492.48 +14799|1880543.40 +14491|1879219.92 +11815|1877434.34 +3173|1874302.10 +7161|1873023.45 +14631|1873015.30 +4247|1869912.96 +3568|1865824.40 +1500|1865451.03 +11833|1863665.23 +495|1860771.30 +6776|1855589.17 +11374|1855221.12 +5637|1853782.17 +3597|1852826.80 +981|1852083.60 +16076|1850349.69 +17597|1845420.95 +19609|1843185.48 +10997|1843072.02 +3403|1842975.00 +897|1842845.10 +16697|1840630.68 +17644|1840597.80 +6485|1838812.02 +5492|1836202.88 +12038|1835075.06 +9325|1832634.84 +10637|1832347.44 +11318|1830158.39 +4357|1828730.00 +18553|1826335.20 +12623|1825950.85 +961|1825869.60 +1677|1821816.90 +8211|1820432.52 +19719|1819333.55 +19663|1819074.35 +16296|1818353.77 +16527|1817834.42 +4964|1815400.02 +1769|1812929.20 +13126|1808799.96 +7854|1807608.06 +18380|1803641.22 +6584|1802346.98 +7665|1801765.35 +16553|1796146.78 +17761|1795095.72 +11179|1794890.30 +15171|1794148.72 +3018|1793183.88 +15741|1788612.00 +5331|1783901.35 +9860|1775071.26 +7984|1774302.75 +15354|1774270.77 +17884|1774212.44 +16257|1771869.71 +10696|1768645.20 +2104|1767902.64 +14465|1764946.40 +10089|1764692.32 +6719|1762699.54 +3648|1760594.42 +7241|1759913.59 +11122|1757430.04 +17019|1752560.65 +13877|1744271.10 +15325|1743826.26 +17860|1739870.44 +2236|1739795.80 +4436|1738760.32 +7701|1738670.40 +8147|1736855.16 +6676|1736341.44 +19505|1735413.43 +9885|1731366.26 +2112|1725934.08 +5330|1722196.98 +3561|1720377.96 +10104|1714419.16 +16362|1712457.38 +15573|1712365.44 +15006|1711381.35 +14629|1709942.05 +9612|1709528.38 +19910|1709211.15 +13145|1708907.46 +11494|1707973.68 +15895|1706999.45 +8239|1705479.10 +2403|1705331.10 +19436|1702706.00 +3476|1702335.80 +6828|1702292.08 +771|1701589.50 +8448|1700312.44 +3755|1699047.03 +13895|1698679.03 +9785|1698056.37 +6180|1695571.53 +532|1694356.15 +6741|1692552.42 +19964|1692367.64 +3747|1691244.60 +3253|1690719.42 +16119|1688339.25 +7113|1681911.00 +12368|1681219.80 +16378|1679705.60 +1393|1675545.35 +11119|1675453.44 +4469|1674023.49 +6955|1672618.90 +11579|1672345.32 +19898|1671781.70 +15351|1659204.30 +6133|1658215.46 +9110|1658054.68 +2979|1656016.74 +18764|1653708.48 +8995|1653627.58 +13096|1651408.67 +15062|1650548.02 +7924|1650202.40 +10076|1647970.24 +15859|1646036.28 +17932|1642640.66 +19694|1642089.50 +13827|1642001.31 +17963|1639689.00 +10698|1635848.26 +18003|1633530.78 +8416|1633366.77 +476|1631154.06 +2806|1630782.80 +12129|1628615.47 +11215|1626624.70 +14061|1624933.44 +5956|1623586.10 +9043|1622670.40 +13287|1621980.36 +11410|1621420.90 +13990|1621268.20 +12952|1619215.18 +15181|1619088.68 +9784|1618120.53 +10733|1616168.88 +16054|1614531.23 +5864|1614397.83 +1875|1611927.00 +17381|1611664.80 +14562|1607467.92 +575|1605941.73 +2005|1605591.72 +4332|1605448.83 +4653|1602596.30 +15403|1601830.44 +17430|1599681.42 +4798|1593630.50 +12991|1593321.52 +15653|1593138.66 +10066|1593049.06 +8892|1592100.90 +6708|1590159.12 +9825|1589403.92 +8271|1588475.41 +17084|1584280.88 +4003|1583631.00 +869|1582643.16 +16400|1582313.20 +19088|1581708.56 +6581|1581346.80 +9481|1581048.60 +6092|1580846.49 +3624|1578777.30 +6503|1578507.78 +14557|1578280.96 +2428|1577543.92 +15513|1573560.21 +4641|1573363.54 +10152|1570213.60 +5932|1566902.52 +7482|1561323.50 +13745|1558358.34 +2251|1558274.70 +9845|1558068.12 +7603|1557388.20 +1809|1553837.20 +18128|1547643.36 +8086|1543199.04 +14948|1541721.57 +16725|1540948.50 +2999|1540317.66 +8861|1540008.47 +1964|1538815.25 +19374|1537884.78 +15428|1535994.36 +7449|1534782.48 +16884|1534509.16 +10271|1534397.34 +11782|1529963.22 +8184|1529750.70 +4560|1527433.24 +4616|1525374.46 +3814|1524077.04 +17265|1523932.08 +16520|1522906.28 +10475|1518705.06 +5094|1517317.83 +8626|1515142.07 +19895|1512286.68 +19933|1506235.36 +6854|1505626.00 +13995|1505562.18 +7102|1504945.67 +9079|1501237.20 +18329|1500146.90 +3742|1496990.77 +12395|1496904.43 +12214|1496489.40 +12298|1495554.30 +4978|1495389.50 +2927|1494280.10 +2119|1494151.14 +15143|1492039.75 +14548|1487406.60 +840|1486128.98 +5902|1486097.28 +10614|1482144.72 +5895|1481356.80 +15958|1480951.60 +11408|1479948.96 +8407|1474236.00 +6243|1471007.85 +10389|1469004.46 +13871|1468938.64 +19811|1464597.09 +10495|1464290.49 +4389|1463010.83 +1311|1461703.36 +17874|1459408.88 +6597|1458761.87 +19211|1456741.63 +12879|1456178.24 +8840|1455731.46 +14755|1454890.60 +16957|1454465.96 +9257|1454388.76 +5193|1454011.32 +6884|1452474.60 +19948|1452024.00 +15076|1448395.00 +16016|1447557.45 +11693|1445839.68 +6975|1440516.96 +4290|1439768.46 +18900|1438722.10 +14383|1438477.92 +15098|1435941.78 +9322|1435282.80 +458|1433040.45 +10042|1432906.35 +5052|1431900.90 +6600|1431116.55 +3630|1428665.04 +9636|1428193.84 +16511|1427308.74 +4045|1427248.35 +19562|1426348.82 +8814|1425690.09 +2616|1425178.04 +4587|1425109.40 +148|1424237.37 +2712|1423780.26 +10863|1423386.16 +16096|1421942.09 +18936|1421938.65 +18327|1419872.92 +11620|1419050.10 +3740|1418609.85 +3457|1418603.50 +1185|1417637.47 +8178|1417357.26 +17791|1413293.13 +13608|1411323.12 +17849|1409613.50 +6814|1406228.40 +14022|1406138.04 +14231|1403771.52 +19546|1402854.60 +19619|1402389.16 +5609|1402302.54 +5342|1401567.59 +3084|1401096.10 +5708|1400334.90 +17998|1399862.45 +19850|1397630.33 +14004|1395443.10 +13071|1394653.24 +2797|1393747.58 +2866|1392947.25 +19809|1389067.68 +13600|1380865.80 +13614|1380654.36 +5884|1380319.74 +9404|1378623.66 +10656|1376954.32 +12324|1376502.40 +7325|1375030.43 +13295|1373987.34 +11864|1373555.68 +6987|1373481.51 +8386|1371854.41 +10916|1370374.32 +12867|1369058.11 +14668|1369040.34 +13383|1367342.30 +18572|1366953.96 +1152|1366861.38 +6015|1366452.18 +3344|1366185.15 +7889|1365521.92 +13345|1364088.88 +6276|1363421.62 +8069|1361824.20 +17509|1360892.49 +15137|1358678.07 +17163|1357391.52 +4704|1356692.40 +8609|1356578.19 +12644|1356088.14 +17141|1356022.38 +11805|1354826.78 +6386|1354187.22 +3004|1352173.44 +8634|1350211.80 +4399|1349881.20 +10362|1349411.34 +1572|1348835.20 +7359|1348224.10 +11884|1346696.82 +11671|1346424.15 +5350|1346359.28 +3119|1345996.48 +5307|1345356.00 +16117|1345045.12 +8715|1342665.72 +5398|1341179.28 +7627|1338820.56 +8457|1337714.68 +4958|1334732.71 +84|1334146.71 +6932|1333235.36 +757|1332921.07 +4076|1332441.00 +1751|1329112.32 +15701|1327052.16 +4119|1326549.90 +1562|1325604.28 +8741|1325517.60 +1135|1325422.71 +1002|1323418.65 +5832|1323085.71 +5368|1322793.96 +5382|1322628.84 +5616|1319082.26 +2832|1318691.95 +3895|1317858.44 +8629|1317756.51 +5709|1317058.68 +18383|1316451.05 +15797|1314806.64 +1900|1313660.40 +13882|1310455.86 +6785|1309877.80 +14855|1309280.76 +7761|1308602.24 +14268|1306810.40 +6257|1306056.96 +19002|1305509.52 +5095|1303729.02 +10320|1301657.58 +7826|1299561.68 +13359|1298717.14 +7436|1298127.36 +5644|1295055.77 +11327|1290526.41 +5277|1289329.65 +15932|1286235.84 +14322|1284809.36 +144|1284270.12 +3043|1281162.79 +16788|1280955.34 +17136|1280443.12 +12560|1279117.95 +13833|1278834.75 +5414|1277893.26 +12582|1277592.32 +4644|1277535.00 +14032|1277077.88 +18325|1271719.68 +7072|1271228.48 +16868|1267469.42 +8137|1267425.81 +5976|1266206.85 +14125|1265569.05 +13299|1265287.55 +18376|1264249.30 +6157|1261759.92 +5002|1261669.64 +13368|1260918.60 +15589|1260059.76 +2149|1258981.44 +9639|1256283.38 +11689|1256027.92 +9083|1245924.24 +16231|1242625.65 +5084|1242385.28 +11634|1240760.18 +15617|1239731.25 +9865|1237181.62 +14212|1236365.52 +10325|1235223.36 +19582|1235105.76 +740|1234746.81 +19231|1233623.10 +16840|1233063.85 +5703|1231744.33 +5761|1229435.20 +15630|1226611.62 +10408|1224698.40 +9177|1221942.51 +13389|1221666.75 +6104|1221577.92 +9673|1218826.64 +2707|1217124.48 +18672|1214208.80 +5112|1209590.20 +6264|1208318.50 +18496|1207881.75 +10971|1207183.52 +19059|1206729.90 +431|1205938.44 +3821|1201192.75 +826|1200454.62 +3317|1200440.90 +19689|1198899.52 +19641|1198797.99 +6379|1197195.50 +814|1194417.40 +18643|1194000.78 +11865|1193965.76 +12393|1193896.80 +9218|1193660.58 +8674|1191881.32 +8582|1191804.02 +13084|1191508.00 +18844|1190239.96 +16061|1189935.00 +6134|1185550.80 +8628|1183245.60 +8884|1181547.48 +7697|1181032.50 +9044|1180922.60 +13257|1180158.57 +8066|1178808.12 +5876|1177376.80 +14694|1177059.31 +16062|1175391.00 +9104|1175178.90 +11600|1175091.06 +10337|1172684.92 +19188|1172349.78 +8833|1171372.93 +6895|1170602.07 +14100|1168878.40 +13538|1168554.28 +3408|1166645.16 +1860|1165673.68 +13436|1164278.70 +19325|1162733.70 +7403|1161982.00 +4882|1161404.81 +13105|1161320.58 +17880|1161256.02 +19284|1160927.60 +13476|1159035.15 +18913|1158208.30 +18523|1158135.00 +12508|1157538.45 +9090|1156362.64 +17653|1154338.08 +3926|1152652.52 +10183|1148324.57 +7556|1146268.14 +16436|1142656.47 +4741|1141614.00 +15651|1141497.93 +3183|1140081.36 +9532|1139902.50 +16403|1139306.37 +2368|1137421.16 +3889|1136395.50 +2885|1135838.14 +7851|1135110.76 +16234|1135017.24 +12746|1134531.04 +2647|1132941.12 +5373|1132158.01 +10340|1132004.24 +8873|1131949.28 +1132|1131338.88 +15594|1131328.62 +4376|1130282.20 +240|1126682.48 +2231|1124447.15 +929|1121383.92 +11599|1119307.27 +3765|1119093.50 +17635|1118420.16 +7119|1118285.08 +15121|1117715.34 +11858|1116963.54 +16963|1116929.45 +16356|1113648.98 +6924|1112198.40 +16223|1111257.00 +18091|1110043.02 +12628|1108954.80 +16043|1108831.05 +9402|1108290.48 +708|1107084.00 +4078|1105993.96 +17593|1104713.40 +12776|1104362.59 +7583|1102813.53 +14619|1102675.80 +8842|1100110.26 +4196|1099726.55 +2019|1098178.64 +6863|1097246.36 +6489|1096503.07 +2459|1094813.04 +11964|1094485.02 +3236|1093969.80 +17647|1093809.15 +17648|1093114.62 +119|1092687.48 +9626|1092080.00 +9124|1091569.68 +13175|1089851.76 +2532|1088706.35 +16083|1088295.39 +8874|1086011.34 +12872|1082970.30 +19821|1082520.84 +4800|1080389.70 +18696|1079685.36 +19545|1079184.33 +13120|1077742.28 +10588|1076203.83 +17696|1075092.72 +14651|1073222.23 +903|1071146.76 +5858|1070259.48 +8302|1069504.80 +18728|1069225.51 +18026|1068569.00 +19383|1066907.58 +18690|1065930.90 +5924|1065143.12 +4880|1065011.75 +12439|1064381.19 +16529|1062371.70 +19653|1057683.56 +3136|1056810.44 +18932|1056193.65 +2124|1054160.52 +16851|1052646.84 +10123|1051624.00 +5618|1048447.93 +19851|1045187.85 +16278|1044808.38 +11479|1044276.22 +13263|1042046.20 +6041|1041123.38 +7193|1040455.32 +19408|1039430.01 +11260|1036828.52 +5179|1035633.44 +1331|1034398.00 +7706|1034249.40 +8436|1033549.35 +1801|1031886.00 +4170|1031642.90 +11827|1031139.39 +17114|1027985.88 +18278|1026583.11 +1995|1025165.68 +7667|1022980.15 +6559|1021635.45 +17488|1021612.13 +16059|1019781.19 +7633|1018782.57 +10032|1016809.50 +2899|1016438.76 +14628|1016033.20 +10126|1015846.78 +3884|1014413.50 +16913|1013604.40 +18644|1010288.10 +19870|1007919.36 +18564|1007416.20 +10179|1004920.00 +883|1004650.68 +3627|1004461.04 \ No newline at end of file diff --git a/test/src/test/resources/tpch/sf0.1/q12.csv b/test/src/test/resources/tpch/sf0.1/q12.csv new file mode 100644 index 0000000000..86211166b2 --- /dev/null +++ b/test/src/test/resources/tpch/sf0.1/q12.csv @@ -0,0 +1,3 @@ +lineitem.l_shipmode|high_line_count|low_line_count +MAIL|647|945 +SHIP|620|943 \ No newline at end of file diff --git a/test/src/test/resources/tpch/sf0.1/q14.csv b/test/src/test/resources/tpch/sf0.1/q14.csv new file mode 100644 index 0000000000..29b37dd533 --- /dev/null +++ b/test/src/test/resources/tpch/sf0.1/q14.csv @@ -0,0 +1,2 @@ +promo_revenue +16.283855689005982 \ No newline at end of file diff --git a/test/src/test/resources/tpch/sf0.1/q15.csv b/test/src/test/resources/tpch/sf0.1/q15.csv new file mode 100644 index 0000000000..2d4519e033 --- /dev/null +++ b/test/src/test/resources/tpch/sf0.1/q15.csv @@ -0,0 +1,2 @@ +s_suppkey|s_name|s_address|s_phone|total_revenue +677|Supplier#000000677|8mhrffG7D2WJBSQbOGstQ|23-290-639-3315|1614410.2928 \ No newline at end of file diff --git a/test/src/test/resources/tpch/sf0.1/q2.csv b/test/src/test/resources/tpch/sf0.1/q2.csv index 9c5612bba0..857b574154 100644 --- a/test/src/test/resources/tpch/sf0.1/q2.csv +++ b/test/src/test/resources/tpch/sf0.1/q2.csv @@ -1,45 +1,45 @@ s_acctbal|s_name|n_name|p_partkey|p_mfgr|s_address|s_phone|s_comment -9828.21|Supplier#000000647|UNITED KINGDOM|13120|Manufacturer#5|vV6Teq1EvLlR|33-258-202-4782|mong the carefully quiet accounts slee -9508.37|Supplier#000000070|FRANCE|3563|Manufacturer#1|jd4djZv0cc5KdnA0q9oOqvceaPUbNloOW|16-821-608-1166|n instructions are about the ironic, ironic excuses. instructions cajol -9508.37|Supplier#000000070|FRANCE|17268|Manufacturer#4|jd4djZv0cc5KdnA0q9oOqvceaPUbNloOW|16-821-608-1166|n instructions are about the ironic, ironic excuses. instructions cajol -9453.01|Supplier#000000802|ROMANIA|10021|Manufacturer#5|1Uj23QWxQjj7EyeqHWqGWTbN|29-342-882-6463|s according to the even deposits integrate express packages. express -9453.01|Supplier#000000802|ROMANIA|13275|Manufacturer#4|1Uj23QWxQjj7EyeqHWqGWTbN|29-342-882-6463|s according to the even deposits integrate express packages. express -9192.10|Supplier#000000115|UNITED KINGDOM|13325|Manufacturer#1|EhrYy0MT5M1vfZ0V4skpifdp6pgFz5|33-597-248-1220|onic instructions. ironic, regular deposits haggle f -9032.15|Supplier#000000959|GERMANY|4958|Manufacturer#4|TK qrnjpDvd1Jc|17-108-642-3106|nag across the slyly even pin -8702.02|Supplier#000000333|RUSSIA|11810|Manufacturer#3|fQ5Lr4KvbNHI3WDMhkcI S6xYtgIi1k|32-508-202-6136|ounts around the requests cajole furiously blithely even instructions. slyly -8615.50|Supplier#000000812|FRANCE|10551|Manufacturer#2|TAJWyNst8OGVPINgqtzwyyp002iYNDVub|16-585-724-6633|ress ideas eat quickly. blithely express deposits was slyly. final, -8615.50|Supplier#000000812|FRANCE|13811|Manufacturer#4|TAJWyNst8OGVPINgqtzwyyp002iYNDVub|16-585-724-6633|ress ideas eat quickly. blithely express deposits was slyly. final, -8488.53|Supplier#000000367|RUSSIA|6854|Manufacturer#4|nr8wRQ a5LXXess|32-458-198-9557|ect. quickly pending deposits sleep carefully even, express dependencies. -8430.52|Supplier#000000646|FRANCE|11384|Manufacturer#3|j6szE80YCpLHJ4bZ7F37gUiGhk0WJ0,8h9y|16-601-220-5489|quickly slyly even deposits. quickly ironic theodolites sleep fluffily after the c -8271.39|Supplier#000000146|RUSSIA|4637|Manufacturer#5|ApndKp ,Wu0 LNsoV0KldxyoIlY|32-792-619-3155|slyly regular foxes. unusual accounts about the regular packages -8096.98|Supplier#000000574|RUSSIA|323|Manufacturer#4|ZcSrzuRKYEGpcxmIsH,BrYBMwH0|32-866-246-8752|boost according to the slyly final instructions. furiously ironic packages cajole furiously -7392.78|Supplier#000000170|UNITED KINGDOM|7655|Manufacturer#2|ayz3a18xDGrr3jtS|33-803-340-5398|egular, even packages. pending, -7205.20|Supplier#000000477|GERMANY|10956|Manufacturer#5|6yQdgeVeAxJVtJTIYFNNWvQL|17-180-144-7991|ual accounts use quickly above the carefully quiet dolphins. packages nag closely. iro -6820.35|Supplier#000000007|UNITED KINGDOM|13217|Manufacturer#5| 0W7IPdkpWycUbQ9Adp6B|33-990-965-2201|ke across the slyly ironic packages. carefully special pinto beans wake blithely. even deposits los -6721.70|Supplier#000000954|FRANCE|4191|Manufacturer#3|cXcVBs6lsZbzfE14|16-537-341-8517|mong the quickly express pinto b -6329.90|Supplier#000000996|GERMANY|10735|Manufacturer#2|5uWNawcqv4IL8okyBL e|17-447-811-3282|deas. bold dinos are. carefully reg -6173.87|Supplier#000000408|RUSSIA|18139|Manufacturer#1|BOC Zy0wh3rCGHDgV0NIGt2dEK|32-858-724-2950| are carefully above the carefully final pinto beans. blithely express foxes ab -5364.99|Supplier#000000785|RUSSIA|13784|Manufacturer#4|5r5GjqBatnYAHaH5kB4IPcBEiglMJEnN4tUUG6k2|32-297-653-2203|se carefully after the bravely stealthy instru -5069.27|Supplier#000000328|GERMANY|16327|Manufacturer#1|9eEYWOr4kUZ|17-231-513-5721|es according to the slyly ironic package -4941.88|Supplier#000000321|ROMANIA|7320|Manufacturer#5|CfDKlGVtMePjtCw|29-573-279-1406| instructions boost carefu -4672.25|Supplier#000000239|RUSSIA|12238|Manufacturer#1|4cZ,ZHKj hRKgYlgZ6UapQ7mrEOozeQMx7KhUCS|32-396-654-6826|s wake fluffily slyly special foxes. ironic, bold -4586.49|Supplier#000000680|RUSSIA|5679|Manufacturer#3|7JwnLOmLhJ1aPMT61PSx9kcY77r,HmRUD314m|32-522-382-1620|e even pinto beans. blithely fluffy ideas cajole slyly around the bl -4518.31|Supplier#000000149|FRANCE|18344|Manufacturer#5|C5t4zIcINBkgBWdMg6WtgMtE|16-660-553-2456|silent platelets. ideas hinder carefully among the slyly regular deposits. slyly pending inst -4315.15|Supplier#000000509|FRANCE|18972|Manufacturer#2|9lTN9T5VBg|16-298-154-3365|ep boldly ironic theodolites. special dependencies lose blithely. final, regular packages wake -3526.53|Supplier#000000553|FRANCE|8036|Manufacturer#4|R0FI5DL3Poi|16-599-552-3755|l foxes wake slyly even f -3526.53|Supplier#000000553|FRANCE|17018|Manufacturer#3|R0FI5DL3Poi|16-599-552-3755|l foxes wake slyly even f -3294.68|Supplier#000000350|GERMANY|4841|Manufacturer#4|hilu5UXMCwFvJJ|17-113-181-4017|ronic ideas. blithely blithe accounts sleep blithely. regular requests boost carefully about the r -2972.26|Supplier#000000016|RUSSIA|1015|Manufacturer#4|3HbVoWVsjn4fTfQGgYTsMaDvMINBIDXqeBwK|32-822-502-4215|platelets thrash against the slyly special req -2963.09|Supplier#000000840|ROMANIA|3080|Manufacturer#2|J2s6iuBgJo03|29-781-337-5584|s sleep blithely unusual packages! even, bold accounts sleep slyly about the even -2221.25|Supplier#000000771|ROMANIA|13981|Manufacturer#2|Gv1ri,V ARHE136eJF|29-986-304-9006|lphins affix blithely along the carefully final ide -1381.97|Supplier#000000104|FRANCE|18103|Manufacturer#3|oOFWtl sAwYcbM9dWRPgKTS3Ebmn9Tcp3iz0F|16-434-972-6922|s. blithely pending requests against the regular instructions cajole sometimes according to the qu -906.07|Supplier#000000138|ROMANIA|8363|Manufacturer#4|yyPBFrErKTaEu5L3CdNJP ak4ys9AbN,Aj8wPgv|29-533-434-6776|deas haggle. final, regular packages wake. quiet packages cajole pinto beans -765.69|Supplier#000000799|RUSSIA|11276|Manufacturer#2|IvldT2pX7R el|32-579-339-1495| deposits: pending, unusual forges nag fluffily regular ideas -727.89|Supplier#000000470|ROMANIA|6213|Manufacturer#3|4OGPs qKpfQ6GNLIKhmbIE6e7fSMP8fmwi|29-165-289-1523|ly silent accounts. foxes maintain blithely along the idly -683.07|Supplier#000000651|RUSSIA|4888|Manufacturer#4|D4MGIq5Uz0,K|32-181-426-4490|ve to are slyly ironic asymptot -167.56|Supplier#000000290|FRANCE|2037|Manufacturer#1|VpG,Ul5yv1RgAK,,|16-675-286-5102| carefully furiously stealthy accounts. bold acc -91.39|Supplier#000000949|UNITED KINGDOM|9430|Manufacturer#2|R06m0VD95FZLoBJHcCMyaZQHitqmhZrQZkZk5|33-332-697-2768|sual requests. carefully regular requests bo --314.06|Supplier#000000510|ROMANIA|17242|Manufacturer#4|6E3aFs0w2SiImzMDSewWtzOwdpLz2|29-207-852-3454|lyly regular accounts. deposits --820.89|Supplier#000000409|GERMANY|2156|Manufacturer#5|gt362msTQ3AwtUVHgqP7Ryksk90dnpPNyn|17-719-517-9836|nal deposits doubt blithely regular packages. fr --845.44|Supplier#000000704|ROMANIA|9926|Manufacturer#5|KawFpBPAADrVnKC,pLL9q3TSyHG9x|29-300-896-5991|ous pearls boost carefully --942.73|Supplier#000000563|GERMANY|5797|Manufacturer#1|aOT6ZP96J2 ,Xhn|17-108-537-2691|are blithely silent requests. quickly even packages use blit +9828.21|Supplier#000000647|UNITED KINGDOM|13120|Manufacturer#5|x5U7MBZmwfG9|33-258-202-4782|s the slyly even ideas poach fluffily +9508.37|Supplier#000000070|FRANCE|3563|Manufacturer#1|INWNH2w,OOWgNDq0BRCcBwOMQc6PdFDc4|16-821-608-1166|ests sleep quickly express ideas. ironic ideas haggle about the final T +9508.37|Supplier#000000070|FRANCE|17268|Manufacturer#4|INWNH2w,OOWgNDq0BRCcBwOMQc6PdFDc4|16-821-608-1166|ests sleep quickly express ideas. ironic ideas haggle about the final T +9453.01|Supplier#000000802|ROMANIA|10021|Manufacturer#5|,6HYXb4uaHITmtMBj4Ak57Pd|29-342-882-6463|gular frets. permanently special multipliers believe blithely alongs +9453.01|Supplier#000000802|ROMANIA|13275|Manufacturer#4|,6HYXb4uaHITmtMBj4Ak57Pd|29-342-882-6463|gular frets. permanently special multipliers believe blithely alongs +9192.10|Supplier#000000115|UNITED KINGDOM|13325|Manufacturer#1|nJ 2t0f7Ve,wL1,6WzGBJLNBUCKlsV|33-597-248-1220|es across the carefully express accounts boost caref +9032.15|Supplier#000000959|GERMANY|4958|Manufacturer#4|8grA EHBnwOZhO|17-108-642-3106|nding dependencies nag furiou +8702.02|Supplier#000000333|RUSSIA|11810|Manufacturer#3|MaVf XgwPdkiX4nfJGOis8Uu2zKiIZH|32-508-202-6136|oss the deposits cajole carefully even pinto beans. regular foxes detect alo +8615.50|Supplier#000000812|FRANCE|10551|Manufacturer#2|8qh4tezyScl5bidLAysvutB,,ZI2dn6xP|16-585-724-6633|y quickly regular deposits? quickly pending packages after the caref +8615.50|Supplier#000000812|FRANCE|13811|Manufacturer#4|8qh4tezyScl5bidLAysvutB,,ZI2dn6xP|16-585-724-6633|y quickly regular deposits? quickly pending packages after the caref +8488.53|Supplier#000000367|RUSSIA|6854|Manufacturer#4|E Sv9brQVf43Mzz|32-458-198-9557|ages. carefully final excuses nag finally. carefully ironic deposits abov +8430.52|Supplier#000000646|FRANCE|11384|Manufacturer#3|IUzsmT,2oBgjhWP2TlXTL6IkJH,4h,1SJRt|16-601-220-5489|ites among the always final ideas kindle according to the theodolites. notornis in +8271.39|Supplier#000000146|RUSSIA|4637|Manufacturer#5|rBDNgCr04x0sfdzD5,gFOutCiG2|32-792-619-3155|s cajole quickly special requests. quickly enticing theodolites h +8096.98|Supplier#000000574|RUSSIA|323|Manufacturer#4|2O8 sy9g2mlBOuEjzj0pA2pevk,|32-866-246-8752|ully after the regular requests. slyly final dependencies wake slyly along the busy deposit +7392.78|Supplier#000000170|UNITED KINGDOM|7655|Manufacturer#2|RtsXQ,SunkA XHy9|33-803-340-5398|ake carefully across the quickly +7205.20|Supplier#000000477|GERMANY|10956|Manufacturer#5|VtaNKN5Mqui5yh7j2ldd5waf|17-180-144-7991|excuses wake express deposits. furiously careful asymptotes according to the carefull +6820.35|Supplier#000000007|UNITED KINGDOM|13217|Manufacturer#5|s,4TicNGB4uO6PaSqNBUq|33-990-965-2201|s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit +6721.70|Supplier#000000954|FRANCE|4191|Manufacturer#3|P3O5p UFz1QsLmZX|16-537-341-8517|ect blithely blithely final acco +6329.90|Supplier#000000996|GERMANY|10735|Manufacturer#2|Wx4dQwOAwWjfSCGupfrM|17-447-811-3282|ironic forges cajole blithely agai +6173.87|Supplier#000000408|RUSSIA|18139|Manufacturer#1|qcor1u,vJXAokjnL5,dilyYNmh|32-858-724-2950|blithely pending packages cajole furiously slyly pending notornis. slyly final +5364.99|Supplier#000000785|RUSSIA|13784|Manufacturer#4|W VkHBpQyD3qjQjWGpWicOpmILFehmEdWy67kUGY|32-297-653-2203|packages boost carefully. express ideas along +5069.27|Supplier#000000328|GERMANY|16327|Manufacturer#1|SMm24d WG62|17-231-513-5721|he unusual ideas. slyly final packages a +4941.88|Supplier#000000321|ROMANIA|7320|Manufacturer#5|pLngFl5yeMcHyov|29-573-279-1406|y final requests impress s +4672.25|Supplier#000000239|RUSSIA|12238|Manufacturer#1|XO101kgHrJagK2FL1U6QCaTE ncCsMbeuTgK6o8|32-396-654-6826|arls wake furiously deposits. even, regular depen +4586.49|Supplier#000000680|RUSSIA|5679|Manufacturer#3|UhvDfdEfJh,Qbe7VZb8uSGO2TU 0jEa6nXZXE|32-522-382-1620|the regularly regular dependencies. carefully bold excuses under th +4518.31|Supplier#000000149|FRANCE|18344|Manufacturer#5|pVyWsjOidpHKp4NfKU4yLeym|16-660-553-2456|ts detect along the foxes. final Tiresias are. idly pending deposits haggle; even, blithe pin +4315.15|Supplier#000000509|FRANCE|18972|Manufacturer#2|SF7dR8V5pK|16-298-154-3365|ronic orbits are furiously across the requests. quickly express ideas across the special, bold +3526.53|Supplier#000000553|FRANCE|8036|Manufacturer#4|a,liVofXbCJ|16-599-552-3755|lar dinos nag slyly brave +3526.53|Supplier#000000553|FRANCE|17018|Manufacturer#3|a,liVofXbCJ|16-599-552-3755|lar dinos nag slyly brave +3294.68|Supplier#000000350|GERMANY|4841|Manufacturer#4|KIFxV73eovmwhh|17-113-181-4017|e slyly special foxes. furiously unusual deposits detect carefully carefully ruthless foxes. quick +2972.26|Supplier#000000016|RUSSIA|1015|Manufacturer#4|YjP5C55zHDXL7LalK27zfQnwejdpin4AMpvh|32-822-502-4215|ously express ideas haggle quickly dugouts? fu +2963.09|Supplier#000000840|ROMANIA|3080|Manufacturer#2|iYzUIypKhC0Y|29-781-337-5584|eep blithely regular dependencies. blithely regular platelets sublate alongside o +2221.25|Supplier#000000771|ROMANIA|13981|Manufacturer#2|lwZ I15rq9kmZXUNhl|29-986-304-9006|nal foxes eat slyly about the fluffily permanent id +1381.97|Supplier#000000104|FRANCE|18103|Manufacturer#3|Dcl4yGrzqv3OPeRO49bKh78XmQEDR7PBXIs0m|16-434-972-6922|gular ideas. bravely bold deposits haggle through the carefully final deposits. slyly unusual idea +906.07|Supplier#000000138|ROMANIA|8363|Manufacturer#4|utbplAm g7RmxVfYoNdhcrQGWuzRqPe0qHSwbKw|29-533-434-6776|ickly unusual requests cajole. accounts above the furiously special excuses +765.69|Supplier#000000799|RUSSIA|11276|Manufacturer#2|jwFN7ZB3T9sMF|32-579-339-1495|nusual requests. furiously unusual epitaphs integrate. slyly +727.89|Supplier#000000470|ROMANIA|6213|Manufacturer#3|XckbzsAgBLbUkdfjgJEPjmUMTM8ebSMEvI|29-165-289-1523|gular excuses. furiously regular excuses sleep slyly caref +683.07|Supplier#000000651|RUSSIA|4888|Manufacturer#4|oWekiBV6s,1g|32-181-426-4490|ly regular requests cajole abou +167.56|Supplier#000000290|FRANCE|2037|Manufacturer#1|6Bk06GVtwZaKqg01|16-675-286-5102|the theodolites. ironic, ironic deposits above +91.39|Supplier#000000949|UNITED KINGDOM|9430|Manufacturer#2|a,UE,6nRVl2fCphkOoetR1ajIzAEJ1Aa1G1HV|33-332-697-2768|pinto beans. carefully express requests hagg +-314.06|Supplier#000000510|ROMANIA|17242|Manufacturer#4|VmXQl ,vY8JiEseo8Mv4zscvNCfsY|29-207-852-3454|bold deposits. carefully even d +-820.89|Supplier#000000409|GERMANY|2156|Manufacturer#5|LyXUYFz7aXrvy65kKAbTatGzGS,NDBcdtD|17-719-517-9836|y final, slow theodolites. furiously regular req +-845.44|Supplier#000000704|ROMANIA|9926|Manufacturer#5|hQvlBqbqqnA5Dgo1BffRBX78tkkRu|29-300-896-5991|ctions. carefully sly requ +-942.73|Supplier#000000563|GERMANY|5797|Manufacturer#1|Rc7U1cRUhYs03JD|17-108-537-2691|slyly furiously final decoys; silent, special realms poach f diff --git a/test/src/test/resources/tpch/sf0.1/q20.csv b/test/src/test/resources/tpch/sf0.1/q20.csv index f1f9843c2e..72e0cad14e 100644 --- a/test/src/test/resources/tpch/sf0.1/q20.csv +++ b/test/src/test/resources/tpch/sf0.1/q20.csv @@ -1,10 +1,10 @@ s_name|s_address -Supplier#000000157|1EmkCApL5iF -Supplier#000000197|3oYqODDUGH3XsHXmPuzYHW5NLU3,ONZl -Supplier#000000287|UQR8bUA4V2HxVbw9K -Supplier#000000378|mLPJtpu4wOc cSFzBR -Supplier#000000530|0BvoewCPg2scOEfuL93FRKqSxHmdhw1 -Supplier#000000555|8Lp0QWPLFXrJrX1sTWkAEdzUsh5ke -Supplier#000000557|IH,v63JRgXMkVhJOJ Gxur0W -Supplier#000000729|CAOGYCBtTVT7aB1p6qHbxF6VVhXaHLgTpI -Supplier#000000935|JHRSOterYgt4MTNo7cupTzA,6MoNw 4 +Supplier#000000157|,mEGorBfVIm +Supplier#000000197|YC2Acon6kjY3zj3Fbxs2k4Vdf7X0cd2F +Supplier#000000287|7a9SP7qW5Yku5PvSg +Supplier#000000378|FfbhyCxWvcPrO8ltp9 +Supplier#000000530|0qwCMwobKY OcmLyfRXlagA8ukENJv, +Supplier#000000555|TfB,a5bfl3Ah 3Z 74GqnNs6zKVGM +Supplier#000000557|jj0wUYh9K3fG5Jhdhrkuy ,4 +Supplier#000000729|pqck2ppy758TQpZCUAjPvlU55K3QjfL7Bi +Supplier#000000935|ij98czM 2KzWe7dDTOxB8sq0UfCdvrX diff --git a/test/src/test/resources/tpch/sf0.1/q22.csv b/test/src/test/resources/tpch/sf0.1/q22.csv new file mode 100644 index 0000000000..d345246838 --- /dev/null +++ b/test/src/test/resources/tpch/sf0.1/q22.csv @@ -0,0 +1,8 @@ +cntrycode|numcust|totacctbal +13|94|714035.05 +17|96|722560.15 +18|99|738012.52 +23|93|708285.25 +29|85|632693.46 +30|87|646748.02 +31|87|647372.50 \ No newline at end of file diff --git a/test/src/test/resources/tpch/sf0.1/q7.csv b/test/src/test/resources/tpch/sf0.1/q7.csv new file mode 100644 index 0000000000..adce33e9f2 --- /dev/null +++ b/test/src/test/resources/tpch/sf0.1/q7.csv @@ -0,0 +1,5 @@ +supp_nation|cust_nation|l_year|revenue +FRANCE|GERMANY|1995|4637235.1501 +FRANCE|GERMANY|1996|5224779.5736 +GERMANY|FRANCE|1995|6232818.7037 +GERMANY|FRANCE|1996|5557312.1121 \ No newline at end of file diff --git a/test/src/test/resources/tpch/sf0.1/q8.csv b/test/src/test/resources/tpch/sf0.1/q8.csv new file mode 100644 index 0000000000..3d7360a6b8 --- /dev/null +++ b/test/src/test/resources/tpch/sf0.1/q8.csv @@ -0,0 +1,3 @@ +o_year|mkt_share +1995|0.028648741305617557 +1996|0.018250279107962147 \ No newline at end of file From 7410cf4800ad48ea1926f2cbe37a8d40c28119fb Mon Sep 17 00:00:00 2001 From: Xu Yihao <48053143+Yihao-Xu@users.noreply.github.com> Date: Mon, 28 Oct 2024 10:53:41 +0800 Subject: [PATCH 19/33] feat(Optimizer): In Filter Transform Rule (#359) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实现了In Filter: 实现了在WHERE条件中加入In Filter,如:SELECT s1 FROM us.d1 WHERE s1 in (1, 2, 3, 4, 5);和SELECT s1 FROM us.d1 WHERE s1 not in (1, 2, 3, 4, 5); 修改了influxdb和relational的对接层,使其能支持InFilter下推。 实现了InFilterTransformRule: 能够将and filter中path相同的!=和not in 条件合并成一个not in 条件。 能够将or filter中path相同的=和in条件合并一个in 条件。 详细内容和测试见【PR文档】IN Filter 转换 --- .../antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 57 +++- .../logical/utils/LogicalFilterUtils.java | 47 +++- .../memory/execute/utils/FilterUtils.java | 52 ++++ .../memory/execute/utils/HeaderUtils.java | 3 + .../iginx/engine/shared/data/Value.java | 6 + .../shared/operator/filter/FilterType.java | 10 +- .../shared/operator/filter/FilterVisitor.java | 2 + .../shared/operator/filter/InFilter.java | 175 ++++++++++++ .../engine/shared/operator/filter/Op.java | 4 + .../tsinghua/iginx/sql/IginXSqlVisitor.java | 52 +++- .../tsinghua/iginx/sql/FilterVisitorTest.java | 16 +- .../iginx/filesystem/common/Filters.java | 5 + .../iginx/influxdb/InfluxDBStorage.java | 53 +++- .../influxdb/tools/FilterTransformer.java | 36 ++- .../tsinghua/iginx/iotdb/IoTDBStorage.java | 32 ++- .../iginx/iotdb/tools/FilterTransformer.java | 20 ++ .../iginx/mongodb/dummy/DummyQuery.java | 12 +- .../iginx/mongodb/tools/FilterUtils.java | 2 + .../iginx/relational/RelationalStorage.java | 62 +++-- .../relational/tools/FilterTransformer.java | 18 ++ .../iginx-optimizer-extension-0.7.0.jar | Bin 8307 -> 0 bytes ...inx-optimizer-extension-0.8.0-SNAPSHOT.jar | Bin 0 -> 13181 bytes .../rules/ConstantPropagationRule.java | 21 +- .../FilterPushDownAddSchemaPrefixRule.java | 5 + .../FilterPushDownPathUnionJoinRule.java | 5 + .../rules/FilterPushDownRenameRule.java | 5 + .../rules/FilterPushDownSetOpRule.java | 5 + .../rules/FilterPushDownTransformRule.java | 5 + .../optimizer/rules/NotFilterRemoveRule.java | 3 + .../integration/func/sql/SQLSessionIT.java | 248 ++++++++++++++++++ .../iginx/integration/tpch/TPCHUtils.java | 1 + 31 files changed, 874 insertions(+), 88 deletions(-) create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/InFilter.java delete mode 100644 dependency/src/main/resources/iginx-optimizer-extension-0.7.0.jar create mode 100644 dependency/src/main/resources/iginx-optimizer-extension-0.8.0-SNAPSHOT.jar diff --git a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 index 2356ac3a3a..3da70820a7 100644 --- a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 +++ b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 @@ -159,7 +159,7 @@ simpleCase ; simpleWhenClause - : WHEN ((comparisonOperator? value = expression) | (OPERATOR_NOT? stringLikeOperator regex = stringLiteral)) THEN result = expression + : WHEN ((comparisonOperator? value = expression) | ((NOT | EXCLAMATION)? stringLikeOperator regex = stringLiteral)) THEN result = expression ; searchedCase @@ -189,16 +189,17 @@ andExpression predicate : (KEY | path) comparisonOperator constant | constant comparisonOperator (KEY | path) + | (path | functionName LR_BRACKET path RR_BRACKET) inOperator array | path comparisonOperator path - | path OPERATOR_NOT? stringLikeOperator regex = stringLiteral - | OPERATOR_NOT? LR_BRACKET orExpression RR_BRACKET + | path (NOT | EXCLAMATION)? stringLikeOperator regex = stringLiteral + | (NOT | EXCLAMATION)? LR_BRACKET orExpression RR_BRACKET | predicateWithSubquery | expression comparisonOperator expression ; predicateWithSubquery - : OPERATOR_NOT? EXISTS subquery - | (path | constant | expression) OPERATOR_NOT? IN subquery + : NOT? EXISTS subquery + | (path | constant | expression) inOperator subquery | (path | constant | expression) comparisonOperator quantifier subquery | subquery comparisonOperator subquery | (path | constant | expression) comparisonOperator subquery @@ -210,6 +211,10 @@ quantifier | some ; +array + : LR_BRACKET (constant (COMMA constant)*)? RR_BRACKET + ; + all : ALL ; @@ -418,6 +423,15 @@ stringLikeOperator | type = OPERATOR_LIKE_OR ; +inOperator + : type = IN + | type = OPERATOR_IN_AND + | type = OPERATOR_IN_OR + | type = OPERATOR_NOT_IN + | type = OPERATOR_NOT_IN_AND + | type = OPERATOR_NOT_IN_OR + ; + insertColumnsSpec : LR_BRACKET KEY (COMMA insertPath)+ RR_BRACKET ; @@ -1146,6 +1160,10 @@ END SEQUENCE : S E Q U E N C E ; + +NOT + : N O T + ; //============================ // End of the keywords list @@ -1234,10 +1252,6 @@ OPERATOR_NEQ_OR : '|' OPERATOR_NEQ ; -OPERATOR_IN - : I N - ; - OPERATOR_LIKE : L I K E ; @@ -1262,15 +1276,34 @@ OPERATOR_OR | '||' ; -OPERATOR_NOT - : N O T - | '!' +EXCLAMATION + : '!' ; OPERATOR_CONTAINS : C O N T A I N S ; +OPERATOR_NOT_IN + : N O T WS IN + ; + +OPERATOR_IN_AND + : '&' IN + ; + +OPERATOR_IN_OR + : '|' IN + ; + +OPERATOR_NOT_IN_AND + : '&' OPERATOR_NOT_IN + ; + +OPERATOR_NOT_IN_OR + : '|' OPERATOR_NOT_IN + ; + MINUS : '-' ; diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java index e71b0b9fc5..526514b1fc 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java @@ -44,6 +44,7 @@ public static Filter toDNF(Filter filter) { case Path: case Bool: case Expr: + case In: return filter; case Not: throw new SQLParserException("Get DNF failed, filter has not-subFilter."); @@ -153,6 +154,7 @@ public static Filter toCNF(Filter filter) { case Path: case Bool: case Expr: + case In: return filter; case Not: throw new SQLParserException("Get CNF failed, filter has not-subFilter."); @@ -283,6 +285,7 @@ public static Filter removeNot(Filter filter) { case Path: case Bool: case Expr: + case In: return filter; case And: return removeNot((AndFilter) filter); @@ -334,6 +337,9 @@ private static Filter reverseFilter(Filter filter) { case Expr: ((ExprFilter) filter).reverseFunc(); return filter; + case In: + ((InFilter) filter).reverseFunc(); + return filter; case Bool: return filter; case And: @@ -352,6 +358,7 @@ private static Filter reverseFilter(Filter filter) { return new AndFilter(orChildren); case Not: return removeNot(((NotFilter) filter).getChild()); + default: throw new SQLParserException(String.format("Unknown token [%s] in reverse filter.", type)); } @@ -372,6 +379,7 @@ private static void extractKeyRange(List keyRanges, Filter f) { case Path: case Bool: case Expr: + case In: break; case Key: keyRanges.add(getKeyRangesFromKeyFilter((KeyFilter) f)); @@ -592,6 +600,16 @@ && wildcardPathMatchMultiFragments(path, fragmentMetaSet)) { } return filter; + + case In: + String inPath = ((InFilter) filter).getPath(); + InFilter.InOp inOp = ((InFilter) filter).getInOp(); + if (inPath.contains("*") + && inOp.isOrOp() + && wildcardPathMatchMultiFragments(inPath, fragmentMetaSet)) { + return new BoolFilter(true); + } + return filter; case Path: String pathA = ((PathFilter) filter).getPathA(); String pathB = ((PathFilter) filter).getPathB(); @@ -708,14 +726,23 @@ private static Filter setTrue(Filter filter, Predicate predicate) { } return new AndFilter(andChildren); case Value: - String path = ((ValueFilter) filter).getPath(); + case In: + String path; + boolean isOrOp; + if (filter.getType() == FilterType.Value) { + path = ((ValueFilter) filter).getPath(); + isOrOp = Op.isOrOp(((ValueFilter) filter).getOp()); + } else { + path = ((InFilter) filter).getPath(); + isOrOp = ((InFilter) filter).getInOp().isOrOp(); + } if (isFunction(path)) { return new BoolFilter(true); } if (!predicate.test(path)) { return new BoolFilter(true); } - if (Op.isOrOp(((ValueFilter) filter).getOp()) && path.contains("*")) { + if (isOrOp && path.contains("*")) { return new BoolFilter(true); } return filter; @@ -841,6 +868,12 @@ private static Filter removePath(Filter filter, List patterns) { return new BoolFilter(true); } return filter; + case In: + String inPath = ((InFilter) filter).getPath(); + if (!isInPatterns(inPath, patterns)) { + return new BoolFilter(true); + } + return filter; case Path: String pathA = ((PathFilter) filter).getPathA(); String pathB = ((PathFilter) filter).getPathB(); @@ -930,6 +963,9 @@ public void visit(BoolFilter filter) {} public void visit(ExprFilter exprFilter) { exprFilters.add(exprFilter); } + + @Override + public void visit(InFilter filter) {} }); return exprFilters; } @@ -969,6 +1005,11 @@ public void visit(ExprFilter filter) { paths.addAll(ExprUtils.getPathFromExpr(filter.getExpressionA())); paths.addAll(ExprUtils.getPathFromExpr(filter.getExpressionB())); } + + @Override + public void visit(InFilter filter) { + paths.add(filter.getPath()); + } }); return paths; } @@ -986,7 +1027,7 @@ public static List splitFilter(Filter filter) { List splitFilter = new ArrayList<>(); if (filter.getType() != FilterType.And) { - filter = toCNF(filter); + filter = toCNF(filter.copy()); } if (filter.getType() != FilterType.And) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java index b0f619dd6d..51608b9473 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java @@ -74,12 +74,57 @@ public static boolean validate(Filter filter, Row row) throws PhysicalException case Expr: ExprFilter exprFilter = (ExprFilter) filter; return validateExprFilter(exprFilter, row); + case In: + InFilter inFilter = (InFilter) filter; + return validateInFilter(inFilter, row); default: break; } return false; } + private static boolean validateInFilter(InFilter inFilter, Row row) { + String path = inFilter.getPath(); + Set values = inFilter.getValues(); + + if (path.contains("*")) { // 带通配符的filter + List valueList = row.getAsValueByPattern(path); + InFilter.InOp inOp = inFilter.getInOp(); + if (inOp.isOrOp()) { + for (Value value : valueList) { + if (value == null || value.isNull()) { // value是空值,则认为不可比较 + return false; + } + if (inOp.isNotOp() && !values.contains(value)) { + return true; + } else if (!inOp.isNotOp() && values.contains(value)) { + return true; + } + } + return false; + } else { + for (Value value : valueList) { + if (value == null || value.isNull()) { // value是空值,则认为不可比较 + return false; + } + + if (inOp.isNotOp() && values.contains(value)) { + return false; + } else if (!inOp.isNotOp() && !values.contains(value)) { + return false; + } + } + return true; + } + } else { + Value value = row.getAsValue(path); + if (value == null || value.isNull()) { // value是空值,则认为不可比较 + return false; + } + return inFilter.getInOp().isNotOp() ^ values.contains(value); + } + } + private static boolean validateTimeFilter(KeyFilter keyFilter, Row row) { long timestamp = row.getKey(); switch (keyFilter.getOp()) { @@ -290,6 +335,9 @@ public static List getAllPathsFromFilter(Filter filter) { paths.add(pathFilter.getPathA()); paths.add(pathFilter.getPathB()); break; + case In: + paths.add(((InFilter) filter).getPath()); + break; case Expr: ExprFilter exprFilter = (ExprFilter) filter; paths.addAll(ExprUtils.getPathFromExpr(exprFilter.getExpressionA())); @@ -330,6 +378,7 @@ public static boolean canUseHashJoin(Filter filter) { case Key: case Value: case Bool: + case In: return false; default: throw new IllegalArgumentException("Unexpected filter type: " + filter.getType()); @@ -394,6 +443,9 @@ public void visit(BoolFilter filter) {} @Override public void visit(ExprFilter filter) {} + + @Override + public void visit(InFilter inFilter) {} }); return pathFilters; } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java index 30c11e1084..513ed4518f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/HeaderUtils.java @@ -299,6 +299,9 @@ public void visit(BoolFilter filter) {} @Override public void visit(ExprFilter filter) {} + + @Override + public void visit(InFilter filter) {} }); return joinPaths; } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/Value.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/Value.java index 16e22f61e2..bb367ad4b7 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/Value.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/Value.java @@ -22,6 +22,7 @@ import cn.edu.tsinghua.iginx.thrift.DataType; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.Objects; public class Value { @@ -246,4 +247,9 @@ public boolean equals(Object o) { && (doubleV == null || doubleV.equals(value.doubleV)) && (binaryV == null || Arrays.equals(binaryV, value.binaryV)); } + + @Override + public int hashCode() { + return Objects.hash(dataType, boolV, intV, longV, floatV, doubleV, Arrays.hashCode(binaryV)); + } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterType.java index def2622cb8..2bb286c2e3 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterType.java @@ -28,10 +28,16 @@ public enum FilterType { And, Or, - Not; + Not, + In; public static boolean isLeafFilter(FilterType filterType) { - return filterType == Key || filterType == Value || filterType == Path || filterType == Expr; + return filterType == Key + || filterType == Value + || filterType == Path + || filterType == Expr + || filterType == Bool + || filterType == In; } public static boolean isCompoundFilter(FilterType filterType) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterVisitor.java index 3dd71fd194..1290741127 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/FilterVisitor.java @@ -36,4 +36,6 @@ public interface FilterVisitor { void visit(BoolFilter filter); void visit(ExprFilter filter); + + void visit(InFilter filter); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/InFilter.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/InFilter.java new file mode 100644 index 0000000000..99391656fc --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/InFilter.java @@ -0,0 +1,175 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * TSIGinX@gmail.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package cn.edu.tsinghua.iginx.engine.shared.operator.filter; + +import static cn.edu.tsinghua.iginx.engine.shared.operator.filter.InFilter.InOp.getDeMorganOpposite; +import static cn.edu.tsinghua.iginx.engine.shared.operator.filter.InFilter.InOp.getOppositeOp; + +import cn.edu.tsinghua.iginx.engine.shared.data.Value; +import cn.edu.tsinghua.iginx.sql.exception.SQLParserException; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +public class InFilter implements Filter { + + String path; + + InOp inOp; + + public enum InOp { + IN_AND, + IN_OR, + NOT_IN_AND, + NOT_IN_OR; + + public boolean isOrOp() { + return this == IN_OR || this == NOT_IN_OR; + } + + public boolean isNotOp() { + return this == NOT_IN_AND || this == NOT_IN_OR; + } + + public static InOp getOppositeOp(InOp inOp) { + switch (inOp) { + case IN_AND: + return NOT_IN_AND; + case IN_OR: + return NOT_IN_OR; + case NOT_IN_AND: + return IN_AND; + case NOT_IN_OR: + return IN_OR; + default: + return inOp; + } + } + + public static InOp getDeMorganOpposite(InOp inOp) { + switch (inOp) { + case IN_AND: + return NOT_IN_OR; + case IN_OR: + return NOT_IN_AND; + case NOT_IN_AND: + return IN_OR; + case NOT_IN_OR: + return IN_AND; + default: + return inOp; + } + } + + public static InOp str2Op(String str) { + switch (str.toLowerCase()) { + case "|in": + case "in": + return IN_OR; + case "|not in": + case "not in": + return NOT_IN_OR; + case "&in": + return IN_AND; + case "¬ in": + return NOT_IN_AND; + default: + throw new SQLParserException("Unsupported InOp: " + str); + } + } + + @Override + public String toString() { + switch (this) { + case IN_AND: + return "&in"; + case IN_OR: + return "in"; + case NOT_IN_AND: + return "¬ in"; + case NOT_IN_OR: + return "not in"; + default: + throw new SQLParserException("Unsupported InOp: " + this); + } + } + } + + Set values = new HashSet<>(); + + public InFilter(String path, InOp inOp, Collection values) { + this.path = path; + this.values.addAll(values); + this.inOp = inOp; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public Set getValues() { + return values; + } + + public InOp getInOp() { + return inOp; + } + + public void setInOp(InOp inOp) { + this.inOp = inOp; + } + + public void reverseFunc() { + if (path.contains("*")) { + this.inOp = getDeMorganOpposite(inOp); + } else { + this.inOp = getOppositeOp(inOp); + } + } + + public boolean validate(Value value) { + return values.contains(value) ^ inOp.isNotOp(); + } + + @Override + public void accept(FilterVisitor visitor) { + visitor.visit(this); + } + + @Override + public FilterType getType() { + return FilterType.In; + } + + @Override + public Filter copy() { + return new InFilter(path, inOp, new HashSet<>(values)); + } + + @Override + public String toString() { + return String.format( + "%s %s (%s)", path, inOp, values.toString().substring(1, values.toString().length() - 1)); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Op.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Op.java index 6a58160809..5eaca62530 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Op.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/filter/Op.java @@ -264,6 +264,10 @@ public static boolean isEqualOp(Op op) { return op.equals(E) || op.equals(E_AND); } + public static boolean isNotEqualOp(Op op) { + return op.equals(NE) || op.equals(NE_AND); + } + public static boolean isOrOp(Op op) { return op.value >= 0 && op.value <= 9; } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index ac8802d1fc..b4a8f19c9d 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -1211,7 +1211,7 @@ private CaseWhenExpression parseSimpleCase( } } else { String strOp = context.stringLikeOperator().getText().trim().toLowerCase(); - if (context.OPERATOR_NOT() != null) { + if (context.NOT() != null || context.EXCLAMATION() != null) { strOp = "not " + strOp; } Op op = Op.str2Op(strOp); @@ -1669,8 +1669,8 @@ private FilterData parseAndExpression(AndExpressionContext ctx, Statement statem private FilterData parsePredicate(PredicateContext ctx, Statement statement, Pos pos) { if (ctx.orExpression() != null) { - FilterData filterData = parseOrExpression(ctx.orExpression(), statement, pos); - if (ctx.OPERATOR_NOT() != null) { + FilterData filterData = parseOrExpression(ctx.orExpression(), statement); + if (ctx.NOT() != null || ctx.EXCLAMATION() != null) { filterData.setFilter(new NotFilter(filterData.getFilter())); } return filterData; @@ -1691,12 +1691,44 @@ private FilterData parsePredicate(PredicateContext ctx, Statement statement, Pos ctx.predicateWithSubquery(), (UnarySelectStatement) statement, pos); } else if (ctx.expression().size() == 2) { return parseExprFilter(ctx, (UnarySelectStatement) statement, pos); + } else if (ctx.path().size() == 1 && ctx.array() == null) { + return parseValueFilter(ctx, (UnarySelectStatement) statement, pos); + } else if (ctx.array() != null) { + return parseInFilter(ctx, (UnarySelectStatement) statement, pos); } else if (ctx.path().size() == 2) { return parsePathFilter(ctx, (UnarySelectStatement) statement, pos); } else { - return parseValueFilter(ctx, (UnarySelectStatement) statement, pos); + throw new SQLParserException("Illegal predicate."); + } + } + } + + private FilterData parseInFilter(PredicateContext ctx, UnarySelectStatement statement, Pos pos) { + String path = parsePath(ctx.path().get(0)); + List values = new ArrayList<>(); + + FromPart fromPart = getFromPartIfNeedPrefix(statement, pos); + + if (fromPart != null) { + path = fromPart.getPrefix() + SQLConstant.DOT + path; + } + + // deal with having filter with functions like having avg(a) > 3. + // we need a instead of avg(a) to combine fragments' raw data. + if (ctx.functionName() != null) { + String funcName = ctx.functionName().getText(); + if (FunctionUtils.isSysFunc(funcName)) { + funcName = funcName.toLowerCase(); } + path = funcName + "(" + path + ")"; + } + + for (ConstantContext constantContext : ctx.array().constant()) { + values.add(new Value(parseValue(constantContext))); } + SqlParser.InOperatorContext inOperatorContext = ctx.inOperator(); + return new FilterData( + new InFilter(path, InFilter.InOp.str2Op(inOperatorContext.getText()), values)); } private FilterData parseKeyFilter(PredicateContext ctx) { @@ -1730,7 +1762,7 @@ private FilterData parseValueFilter( Op op; if (ctx.stringLikeOperator() != null) { String strOp = ctx.stringLikeOperator().getText().trim().toLowerCase(); - if (ctx.OPERATOR_NOT() != null) { + if (ctx.NOT() != null || ctx.EXCLAMATION() != null) { strOp = "not " + strOp; } op = Op.str2Op(strOp); @@ -1778,8 +1810,8 @@ private FilterData parseFilterWithSubQuery( PredicateWithSubqueryContext ctx, UnarySelectStatement statement, Pos pos) { if (ctx.EXISTS() != null) { return parseExistsFilter(ctx, statement); - } else if (ctx.IN() != null) { - return parseInFilter(ctx, statement, pos); + } else if (ctx.inOperator() != null) { + return parseInSubqueryFilter(ctx, statement, pos); } else if (ctx.quantifier() != null) { return parseQuantifierComparisonFilter(ctx, statement, pos); } else if (ctx.subquery().size() == 1) { @@ -1800,7 +1832,7 @@ private FilterData parseExistsFilter( Filter filter = new BoolFilter(true); - boolean isAntiJoin = ctx.OPERATOR_NOT() != null; + boolean isAntiJoin = ctx.NOT() != null; SubQueryFromPart subQueryPart = new SubQueryFromPart( subStatement, new JoinCondition(JoinType.MarkJoin, filter, markColumn, isAntiJoin)); @@ -1810,7 +1842,7 @@ private FilterData parseExistsFilter( return filterData; } - private FilterData parseInFilter( + private FilterData parseInSubqueryFilter( PredicateWithSubqueryContext ctx, UnarySelectStatement statement, Pos pos) { SelectStatement subStatement = buildSubStatement(ctx, statement, 0, 1); // 计算子查询的自由变量 @@ -1842,7 +1874,7 @@ private FilterData parseInFilter( subStatement.addFreeVariable(expr.getColumnName()); } - boolean isAntiJoin = ctx.OPERATOR_NOT() != null; + boolean isAntiJoin = ctx.inOperator().OPERATOR_NOT_IN() != null; SubQueryFromPart subQueryPart = new SubQueryFromPart( subStatement, new JoinCondition(JoinType.MarkJoin, filter, markColumn, isAntiJoin)); diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/sql/FilterVisitorTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/sql/FilterVisitorTest.java index 5a007956df..5e050d640b 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/sql/FilterVisitorTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/sql/FilterVisitorTest.java @@ -19,16 +19,7 @@ */ package cn.edu.tsinghua.iginx.sql; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ExprFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.FilterVisitor; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.NotFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.OrFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.PathFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ValueFilter; +import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.sql.statement.select.UnarySelectStatement; import org.junit.Test; @@ -92,5 +83,10 @@ public void visit(BoolFilter filter) { public void visit(ExprFilter filter) { System.out.printf("this is expr filter: [%s]\n", filter.toString()); } + + @Override + public void visit(InFilter filter) { + System.out.printf("this is in filter: [%s]\n", filter.toString()); + } } } diff --git a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java index 9f6bf52a4f..6f9a971379 100644 --- a/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java +++ b/dataSource/filesystem/src/main/java/cn/edu/tsinghua/iginx/filesystem/common/Filters.java @@ -205,6 +205,11 @@ public void visit(BoolFilter filter) { public void visit(ExprFilter filter) { test(filter); } + + @Override + public void visit(InFilter filter) { + test(filter); + } }); return result[0]; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java index 9be2bc4224..450f621b4d 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java @@ -39,15 +39,7 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.Insert; import cn.edu.tsinghua.iginx.engine.shared.operator.Project; import cn.edu.tsinghua.iginx.engine.shared.operator.Select; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.FilterType; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.NotFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.OrFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.PathFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ValueFilter; +import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilterType; import cn.edu.tsinghua.iginx.influxdb.exception.InfluxDBException; @@ -715,6 +707,13 @@ private Filter setTrueByMeasurement(Filter filter, String measurementName) { return new BoolFilter(true); } break; + case In: + String inPath = ((InFilter) filter).getPath(); + InfluxDBSchema inSchema = new InfluxDBSchema(inPath); + if (!inSchema.getMeasurement().equals(measurementName)) { + return new BoolFilter(true); + } + break; case Path: String pathA = ((PathFilter) filter).getPathA(); String pathB = ((PathFilter) filter).getPathB(); @@ -757,6 +756,11 @@ private boolean filterHasMeasurementWildCards(Filter filter) { res = true; } break; + case In: + if (((InFilter) filter).getPath().startsWith("*")) { + res = true; + } + break; case Path: if (((PathFilter) filter).getPathA().startsWith("*") || ((PathFilter) filter).getPathB().startsWith("*")) { @@ -810,6 +814,13 @@ private void getAllPathFromFilterWithWildCards(Filter filter, Map newInValueChildren = new ArrayList<>(); + for (String matchedPath : matchedPaths) { + InFilter newInFilter = + new InFilter(measurement + "." + matchedPath, inOp, inFilter.getValues()); + newInValueChildren.add(newInFilter); + } + if (newInValueChildren.size() == 1) { + return newInValueChildren.get(0); + } + + if (!inOp.isOrOp()) { + return new AndFilter(newInValueChildren); + } + return new OrFilter(newInValueChildren); + } + break; case Value: ValueFilter valueFilter = (ValueFilter) filter; if (valueFilter.getPath().equals(wildcardsPath)) { diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/FilterTransformer.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/FilterTransformer.java index d8c7289b8a..58c6469cbc 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/FilterTransformer.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/tools/FilterTransformer.java @@ -19,16 +19,12 @@ */ package cn.edu.tsinghua.iginx.influxdb.tools; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.NotFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.OrFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.PathFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ValueFilter; +import cn.edu.tsinghua.iginx.engine.shared.data.Value; +import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.influxdb.query.entity.InfluxDBSchema; import cn.edu.tsinghua.iginx.thrift.DataType; +import java.util.Set; +import java.util.stream.Collectors; public class FilterTransformer { @@ -49,6 +45,8 @@ public static String toString(Filter filter) { return toString((KeyFilter) filter); case Path: return toString((PathFilter) filter); + case In: + return toString((InFilter) filter); default: return ""; } @@ -86,10 +84,7 @@ private static String toString(ValueFilter filter) { // path 获取的是 table.field,需要删掉.前面的table名。 InfluxDBSchema schema = new InfluxDBSchema(filter.getPath()); String path = schema.getFieldString(); - String value = - filter.getValue().getDataType() == DataType.BINARY - ? "\"" + filter.getValue().getBinaryVAsString() + "\"" - : filter.getValue().getValue().toString(); + String value = valueToString(filter.getValue()); switch (filter.getOp()) { case LIKE: @@ -135,4 +130,21 @@ private static String toString(PathFilter filter) { + pathB + "\"]"; } + + private static String toString(InFilter filter) { + InfluxDBSchema schema = new InfluxDBSchema(filter.getPath()); + String path = schema.getFieldString(); + Set valueSet = filter.getValues(); + String valueStr = + valueSet.stream().map(FilterTransformer::valueToString).collect(Collectors.joining(", ")); + String op = filter.getInOp().isNotOp() ? "not contains" : "contains"; + return String.format("%s(value: r[\"%s\"], set: [%s])", op, path, valueStr); + } + + private static String valueToString(Value value) { + if (value.getDataType() == DataType.BINARY) { + return "\"" + value.getBinaryVAsString() + "\""; + } + return value.toString(); + } } diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java index f4cd448fe2..0314bf967b 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java @@ -40,13 +40,7 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.Insert; import cn.edu.tsinghua.iginx.engine.shared.operator.Project; import cn.edu.tsinghua.iginx.engine.shared.operator.Select; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.NotFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.OrFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ValueFilter; +import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; import cn.edu.tsinghua.iginx.iotdb.exception.IoTDBException; import cn.edu.tsinghua.iginx.iotdb.exception.IoTDBTaskExecuteFailureException; @@ -991,7 +985,31 @@ private Filter expandFilterWildcard( } else { return filter; } + case In: + InFilter inFilter = (InFilter) filter; + DataType inType = inFilter.getValues().stream().findFirst().get().getDataType(); + String inPath = inFilter.getPath(); + if (inPath.contains("*")) { + List matchedPath = + getMatchPath(inPath, inType, columns, columns2Fragment, storageUnit); + if (matchedPath.size() == 0) { + return null; + } + + List newFilters = new ArrayList<>(); + for (String p : matchedPath) { + newFilters.add(new InFilter(p, inFilter.getInOp(), inFilter.getValues())); + } + + if (inFilter.getInOp().isOrOp()) { + return new OrFilter(newFilters); + } else { + return new AndFilter(newFilters); + } + } else { + return filter; + } default: return null; } diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/FilterTransformer.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/FilterTransformer.java index de78c44615..08900cb1c9 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/FilterTransformer.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/tools/FilterTransformer.java @@ -19,6 +19,7 @@ */ package cn.edu.tsinghua.iginx.iotdb.tools; +import cn.edu.tsinghua.iginx.engine.shared.data.Value; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.thrift.DataType; @@ -39,6 +40,8 @@ public static String toString(Filter filter) { return toString((ValueFilter) filter); case Key: return toString((KeyFilter) filter); + case In: + return toString((InFilter) filter); default: return ""; } @@ -111,4 +114,21 @@ private static String toString(OrFilter filter) { return "(" + sb.substring(0, sb.length() - 4) + ")"; } + + private static String toString(InFilter filter) { + StringBuilder sb = new StringBuilder(); + sb.append(filter.getPath()); + + if (filter.getInOp().isNotOp()) { + sb.append(" not in ("); + } else { + sb.append(" in ("); + } + + for (Value value : filter.getValues()) { + sb.append(value.getValue().toString()).append(", "); + } + + return sb.substring(0, sb.length() - 2) + ")"; + } } diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/DummyQuery.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/DummyQuery.java index 8316385bbc..e551ed8752 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/DummyQuery.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/dummy/DummyQuery.java @@ -20,10 +20,7 @@ package cn.edu.tsinghua.iginx.mongodb.dummy; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.FilterType; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.PathFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ValueFilter; +import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.utils.Pair; import com.mongodb.client.*; import java.util.ArrayList; @@ -122,7 +119,7 @@ public ResultTable query(PathTree tree, Filter filter) { private static Bson getPredicate(Filter filter) { try { Filter removedKey = FilterUtils.tryIgnore(filter, f -> f.getType().equals(FilterType.Key)); - Filter removedNumberPath = + Filter removedUnsupportedFilter = FilterUtils.tryIgnore( removedKey, f -> { @@ -132,10 +129,13 @@ private static Bson getPredicate(Filter filter) { case Path: return NameUtils.containNumberNode(((PathFilter) f).getPathA()) || NameUtils.containNumberNode(((PathFilter) f).getPathB()); + case In: + case Expr: + return true; } return false; }); - return FilterUtils.toBson(removedNumberPath); + return FilterUtils.toBson(removedUnsupportedFilter); } catch (Exception ignored) { return new Document(); } diff --git a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/FilterUtils.java b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/FilterUtils.java index fbf079e3a6..a4052d5f08 100644 --- a/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/FilterUtils.java +++ b/dataSource/mongodb/src/main/java/cn/edu/tsinghua/iginx/mongodb/tools/FilterUtils.java @@ -225,6 +225,7 @@ public static Bson getPostFilter(Filter filter, Map renamedFields case Key: case Expr: case Not: + case In: return null; case Value: return getFilter((ValueFilter) filter, renamedFields); @@ -252,6 +253,7 @@ public static Bson getFilter(Filter filter, Map renamedFields) { return getFilter((PathFilter) filter, renamedFields); case Expr: case Not: + case In: return null; case Bool: return getFilter((BoolFilter) filter); diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java index 4dac9e44f1..3c746bc0eb 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java @@ -43,16 +43,7 @@ import cn.edu.tsinghua.iginx.engine.shared.operator.Insert; import cn.edu.tsinghua.iginx.engine.shared.operator.Project; import cn.edu.tsinghua.iginx.engine.shared.operator.Select; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.AndFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.BoolFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.FilterType; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.KeyFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.NotFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Op; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.OrFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.PathFilter; -import cn.edu.tsinghua.iginx.engine.shared.operator.filter.ValueFilter; +import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.engine.shared.operator.tag.TagFilter; import cn.edu.tsinghua.iginx.metadata.entity.ColumnsInterval; import cn.edu.tsinghua.iginx.metadata.entity.KeyInterval; @@ -877,17 +868,41 @@ private Filter generateWildCardsFilter(Filter filter, List> columnN ((ValueFilter) filter).getOp(), ((ValueFilter) filter).getValue()); } else { - List andValueChildren = new ArrayList<>(); + List valueChildren = new ArrayList<>(); for (String matched : matchedPath) { - andValueChildren.add( + valueChildren.add( new ValueFilter( matched, ((ValueFilter) filter).getOp(), ((ValueFilter) filter).getValue())); } if (Op.isOrOp(((ValueFilter) filter).getOp())) { - return new OrFilter(andValueChildren); + return new OrFilter(valueChildren); } - return new AndFilter(andValueChildren); + return new AndFilter(valueChildren); + } + } + + return filter; + + case In: + InFilter inFilter = (InFilter) filter; + String inPath = inFilter.getPath(); + if (inPath.contains("*")) { + List matchedPath = getMatchedPath(inPath, columnNamesList); + if (matchedPath.size() == 0) { + return new BoolFilter(true); + } else if (matchedPath.size() == 1) { + return new InFilter(matchedPath.get(0), inFilter.getInOp(), inFilter.getValues()); + } else { + List inChildren = new ArrayList<>(); + for (String matched : matchedPath) { + inChildren.add(new InFilter(matched, inFilter.getInOp(), inFilter.getValues())); + } + + if (inFilter.getInOp().isOrOp()) { + return new OrFilter(inChildren); + } + return new AndFilter(inChildren); } } @@ -911,7 +926,7 @@ private Filter generateWildCardsFilter(Filter filter, List> columnN new PathFilter( matched, ((PathFilter) filter).getOp(), ((PathFilter) filter).getPathB())); } - if (Op.isOrOp(((ValueFilter) filter).getOp())) { + if (Op.isOrOp(((PathFilter) filter).getOp())) { filter = new OrFilter(andPathChildren); } else { filter = new AndFilter(andPathChildren); @@ -1000,6 +1015,16 @@ private Filter cutFilterDatabaseNameForDummy(Filter filter, String databaseName) ((ValueFilter) filter).getValue()); } break; + case In: + InFilter inFilter = (InFilter) filter; + String inPath = inFilter.getPath(); + if (inPath.startsWith(databaseName + SEPARATOR)) { + return new InFilter( + inPath.substring(databaseName.length() + 1), + inFilter.getInOp(), + inFilter.getValues()); + } + break; case Path: boolean isChanged = false; String pathA = ((PathFilter) filter).getPathA(); @@ -1255,6 +1280,13 @@ private Filter dummyFilterSetTrueByColumnNames(Filter filter, List colum return new BoolFilter(true); } break; + case In: + InFilter inFilter = (InFilter) filter; + String inPath = inFilter.getPath(); + if (!inPath.contains("*") && !columnNameList.contains(inPath)) { + return new BoolFilter(true); + } + break; case Key: return new BoolFilter(true); default: diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/FilterTransformer.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/FilterTransformer.java index 6e03e5e768..b78353f322 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/FilterTransformer.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/tools/FilterTransformer.java @@ -21,9 +21,11 @@ import static cn.edu.tsinghua.iginx.relational.tools.Constants.*; +import cn.edu.tsinghua.iginx.engine.shared.data.Value; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.*; import cn.edu.tsinghua.iginx.relational.meta.AbstractRelationalMeta; import cn.edu.tsinghua.iginx.thrift.DataType; +import java.util.stream.Collectors; public class FilterTransformer { @@ -52,6 +54,8 @@ public String toString(Filter filter) { return toString((PathFilter) filter); case Bool: return toString((BoolFilter) filter); + case In: + return toString((InFilter) filter); default: return ""; } @@ -146,6 +150,20 @@ private String toString(PathFilter filter) { return pathA + " " + op + " " + pathB; } + private String toString(InFilter filter) { + RelationSchema schema = new RelationSchema(filter.getPath(), relationalMeta.getQuote()); + String path = schema.getQuoteFullName(); + String op = filter.getInOp().isNotOp() ? "not in" : "in"; + String values = + "(" + + filter.getValues().stream() + .map(Value::getValue) + .map(Object::toString) + .collect(Collectors.joining(",")) + + ")"; + return path + " " + op + " " + values; + } + private String getQuotName(String name) { return relationalMeta.getQuote() + name + relationalMeta.getQuote(); } diff --git a/dependency/src/main/resources/iginx-optimizer-extension-0.7.0.jar b/dependency/src/main/resources/iginx-optimizer-extension-0.7.0.jar deleted file mode 100644 index 61b4e81405129250c42e859752338b62ca9218d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8307 zcmb`McTg1Vn)ZjBh8zbG0f8Y7IfF=$oP*>X2Z_UwgTw(ODLE=xa?U|v21F!FkPIU# zAZb9tAgG_ad%p9Y*Q(vBv$frQS9Sl<&vke8RrTC;{S376@JRsx05L!XzHbg75{WkW z{bcmJ=zf>(0}~}dO+7UsT_rtDwFkx~5M8xzx)b9%+JcZ-a&1Arsfp<}BjI_mt)f=xd`Vy zi9Ng|eB^k$To!b(VOcK~QzzWQ?t!GlsDqBht&}WTS9C9)_xOKVOV7W)o}PXL5JHI8N@Kw{407fA-8{g)O9HEMD#-RvmI5wI>Q-3x7 z%3IoGwCNax_4iJSwID@();iufzH^5rYy$foiYB)H+>i+O??WVFz=_56;H z?_|${UE4yomrWC^Sdnzlts=3JPv`lp#y%z`XI6;e$mvXA(--d&;ll`6W)lj3;3-Dl zvSZgr3sFfAAlgT3!RTq21SJ_z~x`sgRH6EDTMOTG5MyJ^b-|n%`{iyO>qpx z0%+>xfKw0gT@qw#SUf?Or0V;Kd#dk##A9daMODm?lG)#H+P{*Iw@r-;QC7=?zrGs+ znzb^9?w`K+uB6IXV{Y8&wYx$o@Wxkq%5dmi7TccR)7xL2GxSn-tqWlC{keocasTcI z%>ByQVJZN?Ukm`y{I~s}{WE*XLDl>I zeEt-YFT-AM9{qq*cKx!uol)$6Jn6Mj*^o(j88&?!G}qHf$DZWpI3kGn zreu(kq~B~Sfq<1ESanMsKhk7t6hG2>%P{(q>m~j@HcZ|iYcwV4P5a3OECZ?w^a_QsK^%+SM4=Oa zijG(jln_(oB<2=kQ}iYcO$mJLjHN|wGX0#wP$C}F*jL`>MuFsXqMJm+W6_1cO(!fp z>KOFAONA>uAN^ZxL^CjtP-tl=6(VOcL<@8~6wa(!1~Qh8;<&bp5+jy@{w($n3h@r4 z$8p3k97GdH7-Ebf4^PnrONJr?{+h;c;AjD9L0?2?ntL!AcwbHuLoi~v4EYJhw}oF^ ze`(9P!kFPQ*a8&6gHQ@{;@8etG1P0OpXq>NpfS^z9sq`hkxhOFmsSN73la)66s9uo z;mvCm$r4*agCQ$N1dyk`rDWW~I?mPhjhPNKQa0VqNL=>NmEFDSW+X#sW0f1f!sMA} z`3`evV+Jd5P8{*-Y=!z~aOyU1HT$d($(wVNb-S| z9Sk#o5k=L~E$c}R;6V1Q5Qc@j^%wyU_oVOH23?Bz#OkXneJ+o?1zFaQ&C1SFM?pTT1hL%wj@KfUT&id zTe!fOYGn(z=3Hd(es)*fOLPtNDoMaQY2-YloSj)V9&wa?IrcM=#p|2TMw=N_^Gkpf zc)KFI_hnUIUnV;7^*tzdI(x*O7;HXPQ9q^Dll=XQ^La<0x>W|+eEzj9Si>!_{L+# z-*weB<^^JXef`+gcj{@sNyaAXqW&_);>y>(t!&kf{K59Q_v|-YPF|nGG@bw$r|8rW z-4JC;046VUz50y=KeZs`=J$ft{9Hnx;0E22!w`(bbAOhqjSI^{%Prw!<~H&kBH5P> z3^@AM-51ildRVD9$k}tz4;<)1=SGX*SJ}Vr(vmS~o0NF6Uq1WDY4$iwy$?6!^Ag$T z-WHvlps$^bb4X>9UkozV@-=iXh#k=JyX!UF&(UPn5DqX6e^6>e468pnq6Pd~RM5Qs zAp^~tVa1EZK+Wi%NM?pGQfpK^E<|jFPa*#JDCUQ=o=Wu3mMhP@`u<5fF;7Seu=zS; zzHqyGl@lqxu?ur|JZO2M#SB$)06ZwWQLmM-mg{3)-bz;GDCFG^EX|#wE;1-gG*Imq z%STG?KrKVo9<4lxgasp>`QzJbN z9dE>{ifkB@xqIan?$BGyNRsEvwR@}5Gv*NGrq#bJx!wuYYJBz}Crm4HC-+G;!EG0e98f`!YCnn+`>MH;8mWjia4V%PFtP!eSRsj-nb0L>a|N%b(> zT3hzVBaxMoj&|DK;y#`#HIaLV_z}DB414^%r1?fED@@r0ZY}Jl+_sgisz_*dHrY-Y zU|AP-+7`Nl+PM``mgX^k;h7F${cJBwb$3Mn8H?R5a;TEHWpdjQaoobTTw+#}+R5Fd zGmS%a+6Pjd@DUU78#OFnDc>(sEGJ*@=t#SJ>`i(7_dQYOz1s5HmaN3Uro9m5c6ZS8 zQ*&*Bf-IEbS9pb{#5TJO!kWslFjJQKJFv?w(xaxl@-3?@;^1>0(&rcoNWB zaCepNqcq9>3hJ4Gb<(1`%DYH>xu99`caa}+jqlzLaxIg3<{c`*(=ax<@~l`xS7My6 zv;n^GG<9Aiyr0|f5gCDrculQYs&7ri*v0Vo;Ciu!;+K_=nk4#POSZM-KyW-f$-6pU zx;a-dq;=$zXVA^hC|kFWCvgW5O!;z1C9R;6(ARo#wEMDs8E_esI9i#WAqKrFO}C?k z?1joh7UWGovPbD?jW%QNDBEhGyCQ^}((X&gNq6}D)pFi=Qn%Ah-%CQ7*^P<9FYkU$ zsxM*@zU?X`P!F(cuHmQ2db_xp+JsfJApUi&oH*I_l#e4sBi5!Tc2;aU{6<)VwLk;n zz*d|by~8wyuU2TD;|X}KOzi_laR$?~ee2;e!t5#GFO5tuNXR-?+^H{AUFpDxa&s-` z_@=w1Z#Y`8;kp{m3Cxr_Zui1C#13dc4sLn|tR-`~i6fa>i2;ERkZ-;94Etly5V1IvkNn4#dB+}ztbs2 zG@0^)O+PyM+J2fhfajyWUxMU}I7q-i&*m~X%mD@U#lIEiaPH8Yb^DSq%wfO>a3nqi z%`=t+bcr||CfruH_m-S18WKK+N91aJm)2UQK$TBw$|yit1t)pWUA% zPH+&Smb#moN7LLp$tT3Nro6K#R@vs|{YWToO)>^2xGt&txrfkYe2>r?QEGxi?W!n# zwo=!E*M95(o^LWq|(G!$v@FKe=06DOwA#jn2odG8lbag60yg9K?S(QvonZqFXB?dMo7D$H2D8 zOp^f+s3y|5JFt1*m8kH&Ud=%~1x)%XD^R$pO~GD7sO_O8bo1zb_Z^Q%d=1ci^-@HT z7BHGi8lPUNtB11Dh-8+sLA6iNTZ!+xz29JX0)3cKY)IKXQ=sWH=7qV~_JvQMDGL&1 z9S!a{d^PCYX;3kEUZY#4u^Ve?)X8CgagL;~eTCD_*oJsEz~OIBzr0FhBklSt$b8^oZpBkiv=v1XdS66!krnaCVweSJV3u*)Y?f>vH!x>cvVfv% z-Ah5u;zLfU$DO)bm|UKiOtODDiFC@GnodyezS=yKWYO!Dr);+Zn}-RO*wU0LC5=-Z zkReLkRH*DRHnLFLkd1xGOJtStURH{!un0ljedm|9?|SC;NFza#6*?bg8){o!XUE?p zolAy76>2%9c3lXTl=5Qe2@8qb`+Il@ zTapXzmkgP<<^JUPoL z{_5fvRJL`XM6nH>8bGb!XZfWT$dG?Lo)ltVnZx&)btnw$`rnaK<_vU4xDg-Kk& z7;fx;#wd)IyvwceQwxos4o#r+1Z&QRrKUKlX{~>8ARjl!3Hr43$y97bwd+dUptHZ9 zh()$1js`=eLlSz878Tk_%z=*tl0UBpQN&X4x!cANH2HR@mU;xdthSW&f0_Y4S9Yse zDebX5lqH({YDg;sd@oWgZukrS5Ko@zO4Xfm5JmmX)3^<7)h{M0n;Swl_L!LA&6%y#s9dov+{{pc%bquKTfqGvp8 zFr4pE@z5JFVWqa!@T@%No|e8;^1@J~OXfF1FWH`Fm%+;lNKsXm=MN^{Zto^Fxhm?H zq=kfiZzEq#U4d?`&RL*oooQMS)xDAHGj^{R;>#2^iI44e-Uc zNzmGr%_-lXA?`gw#!cB(e*?qHjMuY&R662>lW;Ed8&dX=`OJS?c{t@iaapK-;A5SBTJtx_tR&Br8Ai{DUpNb zqm<5X&9gzSg#I3t_+(dPYT*I^RsXB#%<;csk%lZQ!_7DLtgyPxAwfPUe*4=aLP%@=MvDxJ^T#1V5I@D8+Xt*8o9A>m;x5{nyS? zh3mSVijN~UaeNt33`Z8-KIrIp9I{vv;v!dZ(J9da&<==^rg{jZM!Ri|+tK~DJF8-a zLG4inpCwbS7aU!c`e?V)uUK2Eo3m#g)jbkgs2#)W{e=d+}pz4j;xXpGk031P8Dy8b78 z*4q)dcYisY)j&=8W*212Z%)St>7dnZ+~%`-JXFPn1>wq09Xl}{c;pB56qN2Zk|tC9 zU%@YPg5O9apOwUwZDtJ4%)0UlhY!n;zD0#$Vq*4r(i_Rw%dRbNLHV9Tw3*@Go>-c` zH;z=A!e4&UCXeW_Ol74R|1b$LxBnH>-PW` zMX*RjmQTc$?3yV^Xj5@R2EC7$>Np^Owjt;QH_S$H=5g~ zx*1g$mOkYUm#pAUZ1pw5`02di8$9AloJ;@$g5TUqj$x#ZS48N>1!d!EC@uLU>Y4dLI-xt+ovRvw7PPnJV8GagC*L1j3lBw z*%+%JYtJT3^PjreSi9aBINrEE>hsyS^P%a6(4LEs^u&bSmd;OW*otF=;Uq0F=s`dD zV+8d8hh8%F{%``vJsLl~;VzD;WUSusB}XKWGP|Ux34JMXA(Nz-2_qUZFM0qROkT&q z8r+GxLklmI9NyH)050Ma)m!e8#++3cu78#szhdT5)8zU~ul%^5PFv=yLKuh!7 zEjW5C7rSqo2V_7QBFs4Z5#A(C+ax4DC8kJCd0w>c5tfNr#S#fN;0k}DNAjZ72Dzi5 zg~fdmC)Bge|D{-|Fs=<~cb5x&i-`vE(T_wCnS-IV?W`(2N5R_ z1fxC&;4a3GZ)+-4RlFBjH9GISXlF5AHTj{TGh1Wm_^{8DuO@G{GOyJuuVwvcG!$on zHoGINH%o~?SM_N|!A(|$*T|Yfb#I-^VV-r%-cgqUNN3w;a7_bk%R$4F(D~~eh za9A>t|J-VMTI&vhRu9ML*`(zx+ zvR>z09s}RgF2{ZQ`bX>O3hlUb6WO#dcpn6_m+M$jzc%ltQlX z4{)qxjo+iS+)NZB&H{uZgT8qXr86YJ^Su#WEQ1;2f#9$-<$|&-$0~7O@YcC zvMvx{Z2kC%XUf2BN|icOb@Ua$uEJ*jXW7-j{PXVwT$8yi^3+Lo$ce|kM3z5bE@s zPC9u*ezQ!-|7V$y|74kvf3Qr*KUpT^KUpT^KX$n6i6N3GVIaXw-xlApGNmoP6tToS zrNlEyg1xhcMT7ft{Uw}XTtYL!CfusKx?>!;;MQ@!GR-RMOgc-TtiSKL`+@MfY`O|I zyMBS|^;}jje_!}Go`E(FE-B!@r@p_N|Ci&R-|;UD_|Fyoq_%&(9`pP5f5mYBl=u?_ z{w0y|d*=Q3B>o31_^0fjL-k*>1GN9H>_0~AKPCPgjsB9bWcYU_{-;6dPu)Ka`*V;o?w9UY_2G>Az4g0>M33lQH+K zk;xh=C(APOt*p`uZ0EdAej<|e+Dk-jlD9YIM4ja&u2QlnAikrQ8b#4l+O*Dj(N@m2 zpaCE9YWt}7?~cvC<=~YT8P=%X_*R2*)3od@!p>1_s%Q$7WF6(bpOyt9FS z6H9-ngulCa|JDSz-O|dgEwSXCC;f!MVsaZ5sfUq!B`K&ULlnNFmR5RWOOz-O%4*z1~5PVR3gWoW{8Fp+2G3k+`2@l6ERZAwz6yBAUlFO>7y}uI^ zTPc!PRH_C8PPOZKE(%B7-m|yQ@;g+%ZXfbu&e}W|Ftpx zb?U-L`9nfw@LJ1HDYP86u$8SHdM%puW6G<18d4E= zwgD|8s8)qX(Si;7~j|Mf*jaxc?pqgG&q!w)Tvdr@Y9cF)Q{ra|g zV(Ma{*RtCS@p07W)u4bzw@sI)ea*_A(+(&{C3A1Cti$V2x6@0+B4M8b1x({BkEF@G}2dcG@@3LGt^LMXi=Hs>zSK($u+fKgF1({G)H36 zIM1QwOtbZz^NJPT%7VUix3eu1XJBUhE+Gx#72!P(;63lje%obRAmonKXV}z<@tPgN zMSpJqF{8iNfo#&>n?PRE-)liW)889G-qGLdL1Z!26yXK*HXzFkdK;x;V?s}Q9z8-A z#qrdEKt*i@%TRh^kYzGGF$px5S=yI}-iv1-mS%g`C+m_}#0i79I~~Re_Fb_b4gj9D zm0+CP_~Ao;oiGorlAc-mMZLgV8@bRBxf}$h;I#8}r@+4AG+6kFLCHz|PqRXQ`=k}l zC2D#t!3Ge);W(IR2`~a^%?Yz~*9*=yi!aLE3yB7PpI>}@X7On;QD{wM5y8PIAl5`wF zIWfA6=fSPt1H^x~jly}*fW6}v{9xCYfpM@^9JOIMFqmO`A6^!3=6Tv~96%@!1d~#} z@k@i@Kmj9_F(nYQ1<^WtB_uwPDY(?d&eY^{y^Sb&)q$UwF2$0WW2LBT5|yR8|k0 zYi71~yRyng{C)s&H(($1ebaA>m zdeRR`#VijWK=f6**tK1tBK>wUy%zno&Ah6l6Y$7rTNGUm*{$mgHtiB0L)Ze{dUx0a zYRbGUZqBav%%01)D%K=h8!JIS@7;h;Ga`qA)g0G2FlG8%^=$fw)cUu1w6<4;tkIe;Gpe{xaF`$l0eS&g>nwU+Hz-Ed@-K@QSd*jcJKZd1 zyKjynx9KxUh3E|J8yHutE;-BR_T6v4tE&X8ZCt+N=4$pb&nf5WOdx|`*7?864PO23 zc0MyAppwC!W$XD$Ibr9@)7=@-tLv`u1%RM+rBp|s7%sGGgX?{Q z&a*_y*ca-*6RH=0*v@4J>RBAF(SvyOT{TQOBYu)%(riz&=UeOL^zDGVQdi95j+j;6 zCRfH2a)1?JM^Kn#vaZBiZ{Mk7E*Dphg3rgg zUI!wdnyvoam-KAdTB_(PTYuq7orZ8#gjDMP zy@yU^A`9ub!V(mk!xA91H3Uf!0~ugHn}3n};bBEeRXLO#YxEh5TLn#1A<5-P6RFh0 z2qsHvhFxw8$|)&}U7n=ZEQ*ze3a0!apZlAd8&+4&X5Y68DiI^u{4o(^`&#dPYBEZT z!gOsMrv$Ye-ZPUqTdd^2VAUW7*u3D-SdVTatmbDmY}CR%EewzM;o)~f$6v0u`ye;5 z^g>p9EDvRHnYAiiI9(>yKg&A;kc-cljsX~k$!IB)zfJotU%w2A*%Q=@g=Dwe_|H&^ zxy$Re3Q_LY&yEqY2zzjSCPd9h?8+lct8Yt^vTdHNzo=4e%N6q9TO8OPeWvPh`1SSX zu1v#a$%Ik5Oohwv*oxs&ZT%$`;&63GHs6cN5?tZA_&leu=8>2NI>U=ROqZ9<4w+{n zc&YVGO06>9?-ZIU&y4G>eQP>IM)G58Oq!$}aL=Wc!XQcaDZ@#IeChj6bCyFpFAROY zv<_9?C7t=OhsFaDBIYIw9x8RQ`pt+j-+|PWXf$w{Z#$JaKkiB{A@519O}~sjLacp_ z_P{hi7|6mK%u&m&b$D5J(LKkFPNu29VJ>8knKeMv;)0?g`p|^ufduz7gHaSGAP6ooeKx220z8RuxCsO>Msc`%u*l%j~x8mw$L2 z(eZtWz>XWC*3p_y3ev?dZr-FeOAc#) z9n~Fw0G1yXIgH6{UVasw>#r_1NS3JpLltYx`4wdEL?W0tcv~`%S!T*V+dXV2FkgG} z>OCuK_*>GCF$R{4>1HxQ%J;Z}CHxsPhEs+C4WJs=+699W!vKrcq&=Qalg6E+eA|Jm z?D#7W*5!Pkb7~ir?J^{%Ai-s*Ew7a*FgFuuWh&LRFD^Y3P4-l@Fnbd}yQTxO=-C(u zG`J!he^)4fxQ2tuKgWa4+OPcI+jMg6kTi_OzK&@i`~8i+PNCQ%d{NKcQ~Ec-UefV# z?l5Ovnz_MR2A?VObht=|9Pr3qA4x}7%$UN3)miMI`arU3(YfsKrntowo@d%{1PmT< zE)&vOW?gUN^U0o$lhu9^#=F(#zL+3-mcfT)b8VxK)Wb5r$5*C4_bSj0 z<0Epqy}FN3NGDO-hY+OFrbU?wMJ+O}?fz>d9bzj)-FE(uAveZzBwMx3Gx4Winp%4C zXWiM0bXM&^EKc7$ox_*-LL85RHuwycMH}YCO@({%@+8O|S6=CAy(Qx+*7zbPN*cOt zpQe;W*B^vA#$pVL<1EsIjK}E+cE9 z<{S$o2&mo>|Glc4_F0gG5+ERW^8P1P9mv(*Mb5&?%hki)-@?n@)#b0MuE!8NQ0wOA zHIvGfQYtoXC=!b+3a&~gGg3IUc@;O7vm};X$RX#1GkFdpzv8nzm!rG@!F_=xijz>! z)J|Mr<*_HLC!Rn>z~{}g-(L9bk7h4YK6su_IB%5IrQ+WPOr85ue!l+od-D8#()ri- zyZ$eT=9mv-U|)>;!ajV=ZoRE2R7zq$nJsygVC}6hD8a^C8lktC_Yr-+P=htMDp16! zFS7b5L-DchTly+cgH^V8kqVx}y+bz%;3}b;gmCB3&1Z0v&`kh5DD*V}Tv`eAsD}rD z*@GK+M4=b#(8aMLLN?OsQ*$W*G*Be1|MRJNC=+I5e7_SqqS~`99Fe6hB^2d!C<$=# zS>Y-ko}gL?F&et`bEvY2!o_nDWf>7DiimcfJratDa#$wt0h&ZB@g{4saTt#iP7G}a z_ChaAz~{X8A+RW%*OqV|C>Lq)#05Ec^W}Xa3?Jv+8#n;EN%}B(fe(I1XkPY$5egJh z4sCcD7!J$D*|dT`hn@rT+oc%-vtduPK}DY|G_Ixo1Wpm{egKZ`DR*ksG7d@67et$u zml)t>98U^!*<9ok!7)VM3tIGXhzEECFAMp#H5?m?jq^BlL5m2&0RZ=2CaoCzjUZm@ zTT$M}hsf^1w9&`+d+(gA#qZNYB1!tDFx_&Hi6LCThw%$8@FSfB6O;)2mJ^|S02O1Z zqi;Zc$b2Zyga`*k*9EKG31=6_2ObmG77&U}Z+sAj`9xsNI)0NiphCh~+b9v8FW@iC zTH6?zUvsz&QsWg{J?H@EJ04=revHds|K6RPe|*r9pZ{tGP)E?1U3|-kxf!d+9?wWBC^hpzPyUjrujNr&1I=qK(nN$=`(=VZm2V(_0 z0)o3 z!521$lR-B66X-7C4_^MhUYzC`8ZcMmu+sEpdL)-=o*3UldT_ zaBY214Gah5=K1viHg{x}V>ncCgf!eOy8uwt6Dj6v_G)>3n8Exs;SF1n%e$A)65CpR z#~$2_1UokyWDd*VfKv}+%sVR+kg@8}w}%PgCPIrFJ8vUsaw*|$gPz$N^HV!qdVDVy zF#2kxq+Et+VX{oE$VM?d_bbUE2Uj&oOlzdk4hC*6jxX4i_Pvp%d(fI)w01?(k?Grl zllQ|j0*`xQ0qGfUOnp6Hs_Iq+ICOT202ATIsY5?Inn`hCDCF5`UzeGEH8%5Vdl$~^ zlwMNA{aidoQ5>I4QJ~+BT{~=ulcn9s7G8*#LYg>oEF;4f(O!#DKdj;s6yd!A1k_jb z_J&mbw3}_zJqKDTJl9X`%W|HH$PwL+nL^s&>vcfOecsk?6Zpd?eig~t?t^W&ZBiZk zbv%sV3Pm+u)?L(-a@T2B;8CE1!)oySp+G3FBqbAc6|hurlg~p=h372b^{d9huDizQ zdpC*Vs8JUk=mSMeyjC_XJhX}Rz0h(3sKFq{?k#*_ac!!b&kyQ&isU>M-f)?g{4y(6HFFkaH`B-#19zmk~F}XCC6j`pgbu%uRaF3CMQcJynN(qkb`xH8uwo zP}Sq6-M57oqmCk=$oN%8|CQ?c4@+HrX4oceR2)!i?C6!F#(f=?3KNO_KDWlnGHtd5u~Z9n{G{GzEoW3#aj|aFSg>Z#JpH$VG7K%4QR^keI?1v6eFCUijCe(2f!UInZ@}`!x=C40D!Xi}3^#y`bUUTUXNZ=6HVBu;m41CKHTBjrI;>;GUsjMzwO-DxK4CDWl+M>4 zT{P6ZJ}#0d;;Pe+J$Z{3so&>0hkF)U#dm|o+Cp>SqguLgr08>_Z#;}KE7b$vXc$yC z93zDw5qqU;vop-T&Z)PJ0A_%ei@io?v;kw3)EZ8t1KqP6{z>GpBq1zj#vG! zhIAe&&CFU&aAAXqWM?e*ya?}8m;!UX%y9{g_3N+?U3R3_uP?`{k`qOEXL5%HddSii zc5F_ERZGirtkb7;I~|7Qk4VK$Q!85|kyvxICu&qb&G)_uunZDi$Zng2&bBU+ZJ6aQ z>nmj<@V9|iSLWzmYGHp_8AnsZaa}f~iql*DHR;;)SO(X;P8Ab(?Ot zXhJg^KH!F$Qi1qiNr@nFy`}dV@^-)xB)x%>Vw6OXjxp=4;JGlJmLUiht?VT zlbCU4RUG-Iv|%hWd8q_h%gei*q+vXMU1eMG09xJ?LZF4Msyb!iTxRrODk$37M;0;^ zvJfF|?WqaFZDh1sQ5CFYjbl8J@NtQo2|EdYyA?Ll_gId2#Z`>yT9QG6Lfx~k-8H@2 zD2g^|Zt&X46)y+)OEMpcOe1}^)~S(5rp=vt(^RMIIf3aT3n`V%*r%it7~!frC!5t z(s(w+80#E$m9Dy~s7Dyk#4nmBfzb4e}lWd1!_yV+Ug5;Z0Ia;$=UdDd_h!!!>+BL~XJ zMSCy6i*SGO=4u|tzR^>%5|+x24d)5ph_>cy?(tC@^7`)*I?rTd32dT8(YX{jayUF+FaNf4qNnjtTbRM>xw3LUE5UMArpK9AXP6lnmu1e| ztERfv;Cr*XWlw^s;d|B*Tz>;ZAA)l8$bK8tgv|bWUJnWv`Mi;Rzdv ze(38Ty&xNdi|dB88xyNmxB`_%ciiyA(1`%DQ8nFwId^g=LF9DP8$6y(bUdo$b8W6; z8d3YT^vuv~6LtW1=34f|*;8Q58&sZl0M|%HUW+_h=bfEvtZ%L}{5DBFKQFclv^NX+ z_}|D;>3_trlPkpsL%5$Tx@JY!TIy4 zKV`^oQffvrd12_+OeaEUI=#wqytBN43nGE$B8tTuj&F!~HID@Fjr51mKGA()YRH*k z?3}0wZQk7#+nOF>NDGNF2TiZyXTBAZZz*MKbG&#n;YRAEE_qGJ?iX3ZfTdF-BKx&D zJ3LKSlglfk`o)T7jmdtYftUkrl%zm;D#KC1q)kYAvRZ`h%g~rdQ!V^LN@47A%sW9g zDh)Q+I9rrs#m%9TrE2Oqd)i{&?)2pcM2(V#9&vt$7Ry6s-!yx%-xs|O4GlH~;v z6H3+Mz${yzRdiou)#rka%573v06ivO9n!a7M5tYg2Pv#FskBLFdLK3~IAHB4?ot>BEDI`W7s!p}UI-^V>FRW(7w-`-{2jr?*j^N9(k zLmsDku@H>o&{y~q*MT7Op5*U4C4+DIY>1vZ<0(%~`+wdYxA=FjOV>aRph5I-*5X$5 zf`H%_m!w7AO~Rd{ID}b=1xueOpYwDHFOm0+4QSf-F$^D${ykkrmXGJ^i0Yz&)T(wr zqpp&_h+#$X5K(@9~)g`kCk2&cXJlLHFE}0;>?KB&+Ccye}q+8i_oK z?uh~Em3=&lswjQaq!QWm6!Hv0oFgL$tnTz7)QKoX-&*L4sH@!=qaFAZJV3H29IP%| z&Gd^pUfb2Nl*TDLIkBcy(V%5+2&<)?4o{fPb9X+T`KX*?UQ1QG@-;qUSJ7qmD5 zi-W)^?p8!K-w0cg(#qB1XtMg2ACWoVgoHD}quw1m~|f=QIC0!s3Sxdq-=>YZ`Yz{V@?SkW|^--?IS zJgaO$ujo_{_xABB-g&er&O0J)N~rfUrC8@sXMn^rim;rj>(c{!RY$d8-ts=7zmKcyVy+yfsx= zdNZ+hM4f*xW}w7^M})In1)@`K$HQ1TAN?lflRX(G*pcBm1-NFgfQLc*a?%~juP{7q z019Q94H7E>)@NpcwF!K-I)N>xMbo^M3QHMGIAhirYfBLjX>jE;1d_H#FV80S8Pc>LSuS+WOcO)-e>|_~!dskDk{iSeD=TpEkcTt{M$oJZG=8hSJ8^hhsx-`ws9M#YR^DEIhA0)ayFK3 zPdGO2>}MD$qa5N`ST*j19!NJN1P@8KER#ZXEMz)pLP|z<&{#4KM*Qz>=5+PkiqPY8d;pb~=%O!_ zCUn>?X%T6p$$WyV#&U!%Mp;y?0<~5VpbdKe>LBhrTt;0Oipr)SN4JddW)irY zX@*v=p!I>jKh{So^k8j%2ar=EMpFC2&fM19PvW?_$is9-P^fi)t=^!Ngn=k10|lJe z1`37I)oVyliieR98Oy(&f8`Z-=IC5n<=4qxC4U`js57e-EIEm?9Q#oe=D_vZMcMoy zMu&}8DPU>@OL^laor%Cm$5b{`ORVKZaZ9U%rpkRP8uKq9d(VNHP`0!W^mX%z@26G; zJFe;Oo>y`75^kzfjRZ=*vC!j~wbQXGZK|fEYpo_@O3>q1%vo{lNdT`0ttDorcZTwMYBk?N_gnS`45p}P#|M1B5C#ub<3&=7d6~XG!BrbxCEZ_ z8A%#auBhzgcX<9-d!PO5*VL3F0vAkwsjblwRuyTBZLa^)W;rX5=MKlRkvAG@DuZM| z&QQC|Yy}-+j1_3RSdtt3B;p6TSg8_NLCo9;Iqt<0wngsOkw-P_z`>wDFNjh1@4htv zOWjIs#0z+Xb!L4AN&17HdBH>R6xF^&US3MD6}-|mo3mJ}3V!3aKb~=-eP;;1hhiKt zO5OHi1UHndK$z-u3+7R)Afa5p)@r6Uw{kpdKHJo=t#+D<*$BFy2?*N8jvVufm2Xr^ z9Jb@c{LW_rnog`sSgicoVKj@v^rwNnZE>7&;JpC4W^1>2_%_5@>@qI@;wIW>q?7*f zNZ2S}LSBNXR%mXM?t{u(MOP~$KEYNb`!3@m`b79GKiPK_i{&0jm=QVcp*R)o?t|3* z0ai8*`|TjXp)0ppzEp!8M3jb3xpOo5sWDbp)#81p_M5smPP>+6QNZgIo!Cl{V!zVd z8kF>1a2U_~rDBDg7pIC4<%SaSyFYT(_ji7^{!f}z`7;Cr&_7mU)V!a3n16LpWSyQw zIu{Es>;Kg~(L3}7=ny@sq}Z&yVYOdok2^^c2*qe7Mp=<6N|JCM({#&aobx&GDxXxw z8pI`W(;I00r$J>l*k=4U_`q?e3=;SE8ETVE$CSft!f-xVjzlEoX}l$pq+Ly4z48AMI-Q1`*{&YE~x;oHVKS#{^bcyU)(w(T%9U}3Ku7U^amPsF^fd=FCZS8LOgY} z2@XCt-%C-#kO(p`2aXZ&h!hV+J^mMRRs=dSMv+hmp%X?i!mlvqK>_e7jypIiEGu4y zK&!DNZ7tX@h3c9AdHMyPFlnNKAMqCk(I^06zO7&ANGAMPCkuxdssYxc?*_YIHf&>J zx)$m{6h&EJDray~GHF8ylR86StSV+fkqKm90R%^ijo|9oX50H9nH%x6jZVh^BPS)~ z{N|4N8j^7VFr>eahZ6pDQ-D~1S2&2Gl=8)hLiL00dLu1Fj%_Q7m6y))tZLr0{b-@k zTGjropgdEhVX52Y#9Ea#QqCTu$rTOy;m4qOrkd?(oS4PTysO$D+8PM>5F^FIm#fZm;j@#%k|M z*+n1Xv51$oQ*Z<&)Y>Ov-eJ#;f4O?z>v{R=kqO|DU2q-1T<5^I+`K?F?n<}Q^Nu*m zb@D_bHR#9=8Go(M_m=9~HxV*5_X^a&QDWcqcEjR$C1)YE&EcTQ-w;95)w9UJSII%n z_h1UvT)pA!#oQEO*-l<{`lhU0AA1`-lYB;I2E&lFJ>LDA{lOz}`6@R+$ckKtiO3pe z(O=EOr{WIT{UppK8ch8*UY(}zv*cHufRYgPR*NNV(cSu!`wRrLgk((=BA24yWhrRi z=FeijRK>W~ITJSC{lG7%7IFJd#Q5f8xIN+=+OIZ;v?$@Xqg}=llG5vKr*AymOE{QB z4%X~ajIz#!6yzJJ=Xhu;G>LE_tSVNT=QI-$n9Hhdb6Lc!N$r-$=CzLN@5Ne>h{n?a z9$vZjrCrq{5jtPHYwQ87A2;|u#bYe_1yoU+&p9(fvNGPA}kKG*iS#^Q8_~hmL9r>1qCmG=JkL-!A2Y7PX$-gRr^| z>7^2j`A^c%sc)<+07zH#OG1IPGt=u*G-MqEgt)x2!Rpm0>_!64js>I1H%9fG1$7rY zlGPoZUmdbOsG#l53|5lf!)Y$o!56?{h}SY<EHdI!xGfan? z;}Y{iu>IKC7{*Jxj1Vt5WqvloS??!e#MeAA=cWq#0(xni*_!yq8otYBX54X>6q6L+ zvS(!8eX>>bLU0uQ6dSfTfS`-BsaV4L-9e5(PQ57+d@^84 zB)D67DSj*MI7@N^T^7!J(Z?j^QHdmF?gOUX8@Zy!0FL{JP9~yLU@}G}Fs_G1u?jCw z?}BdyajlwuyA%@6bB<;kAHC>f{qnklkd+EBie#9B(3m zDcqSa+p%c)+U9_8{C$*bRlOq9dh2QcCa=B;6)~rX{C5xe=kHO=XS+g#_fKfEj1*_` z#;KGiEMj$q2v6nj5OlE%bvnYl`w$lVxrt!hfxz*y5f2)+Uhp>@?>%KA9!0Mc>jfZTe&S#bbC#bP5jYMD9c= zVPR=jYG3YCmm2TU$!F*euPIaBgsY@JQ)_8hpDS!8dM;58Pcz%Z(~x-@|D&aQT6_4|Tm4J>cHw-I#5w<8Nu2Y)ByrAvOX8gW zBZ+hVmn6>luNm&cq$CzZ0!I!Ogr92EQb;b@EkQbWh;L7ujiaEpIYWN%gG1buC&jkH zsj<_WQF|$Oo(+rbj;(1ssqla`fwN6Q>)SIY=bNQ-I<;MCI79hh*hegy7w{o ze8&evEM_|>>Pm=6SP1{$e*M$4{IAddJl6lR?f<;OpLYCTe~)-N{EuAuKM{Yb*MA{m zpH@Ww4DoLf`%lE57Vlq(;-{kapCSGar}t0npPI>ESUEvEXX z*njWf{E7H;z4{jdlkT4){=Itr6Y=M=<1a)R!#_p*dlB*{;?GL path.contains("*")); } + + @Override + public void visit(InFilter inFilter) { + containsStar[0] |= inFilter.getPath().contains("*"); + } }); return containsStar[0]; } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java index 8c696d62c3..553ebb24ec 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownRenameRule.java @@ -96,6 +96,11 @@ public void visit(ExprFilter filter) { replaceExpressionByRenameMap(filter.getExpressionA(), renameMap); replaceExpressionByRenameMap(filter.getExpressionB(), renameMap); } + + @Override + public void visit(InFilter inFilter) { + inFilter.setPath(PathUtils.recoverRenamedPattern(renameMap, inFilter.getPath())); + } }); return newFilter; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java index 600bf74a9a..853bd7b4f2 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownSetOpRule.java @@ -160,6 +160,11 @@ public void visit(BoolFilter filter) {} @Override public void visit(ExprFilter filter) {} + + @Override + public void visit(InFilter filter) { + filter.setPath(pathMap.getOrDefault(pathMap.get(filter.getPath()), filter.getPath())); + } }); return filter; } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java index 3c7c1f457e..5def4d367b 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownTransformRule.java @@ -145,6 +145,11 @@ public void visit(ExprFilter filter) { hasFunction[0] |= expressionHasFunction(filter.getExpressionA(), functionCallList); hasFunction[0] |= expressionHasFunction(filter.getExpressionB(), functionCallList); } + + @Override + public void visit(InFilter filter) { + hasFunction[0] |= isFunc(filter.getPath(), functionCallList); + } }); return hasFunction[0]; diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/NotFilterRemoveRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/NotFilterRemoveRule.java index f048dbdab6..bf621fb78b 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/NotFilterRemoveRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/NotFilterRemoveRule.java @@ -70,6 +70,9 @@ public void visit(BoolFilter filter) {} @Override public void visit(ExprFilter filter) {} + + @Override + public void visit(InFilter filter) {} }); return hasNot[0]; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 881f5acb90..665d4eac9a 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -5045,6 +5045,17 @@ public void testWhereSubQuery() { + "+---+--------+--------+--------+--------+\n" + "Total line number = 6\n"; executor.executeAndCompare(statement, expected); + + statement = + "SELECT * FROM test.a WHERE !EXISTS (SELECT * FROM test.b WHERE test.b.d = \"val4\");"; + executor.executeAndCompareErrMsg( + statement, "Parse Error: line 1:28 extraneous input 'EXISTS' expecting '('"); + + statement = + "SELECT * FROM test.a WHERE a !IN (SELECT * FROM test.b WHERE test.b.d = test.a.d);"; + executor.executeAndCompareErrMsg( + statement, + "Parse Error: line 1:30 mismatched input 'IN' expecting {OPERATOR_LIKE, OPERATOR_LIKE_AND, OPERATOR_LIKE_OR}"); } @Test @@ -8770,6 +8781,243 @@ public void testConstantExpression() { executor.executeAndCompare(statement, expected); } + @Test + public void testInFilter() { + // 插入数据 + StringBuilder insert = new StringBuilder(); + insert.append("INSERT INTO us.d2 (key, s1, s2) VALUES "); + int rows = 1000; + for (int i = 0; i < rows; i++) { + insert.append(String.format("(%d, %d, %d)", i, i % 100, i % 1000)); + if (i != rows - 1) { + insert.append(","); + } + } + insert.append(";"); + executor.execute(insert.toString()); + + String statement, expect; + statement = "SELECT s1,s2 FROM us.d1 WHERE s1 IN (1,2,3,6,8);"; + expect = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|us.d1.s1|us.d1.s2|\n" + + "+---+--------+--------+\n" + + "| 1| 1| 2|\n" + + "| 2| 2| 3|\n" + + "| 3| 3| 4|\n" + + "| 6| 6| 7|\n" + + "| 8| 8| 9|\n" + + "+---+--------+--------+\n" + + "Total line number = 5\n"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1,s2 FROM us.d1 WHERE s1 NOT IN (1,2,3,6,8) LIMIT 10;"; + expect = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|us.d1.s1|us.d1.s2|\n" + + "+---+--------+--------+\n" + + "| 0| 0| 1|\n" + + "| 4| 4| 5|\n" + + "| 5| 5| 6|\n" + + "| 7| 7| 8|\n" + + "| 9| 9| 10|\n" + + "| 10| 10| 11|\n" + + "| 11| 11| 12|\n" + + "| 12| 12| 13|\n" + + "| 13| 13| 14|\n" + + "| 14| 14| 15|\n" + + "+---+--------+--------+\n" + + "Total line number = 10\n"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1,s2 FROM us.d1 WHERE s1 IN (1,2,3,6,8) AND s2 IN (2,4,7,6,9);"; + expect = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|us.d1.s1|us.d1.s2|\n" + + "+---+--------+--------+\n" + + "| 1| 1| 2|\n" + + "| 3| 3| 4|\n" + + "| 6| 6| 7|\n" + + "| 8| 8| 9|\n" + + "+---+--------+--------+\n" + + "Total line number = 4\n"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1,s2 FROM us.d1 WHERE s1 IN (1,2,3,6,8) OR s2 IN (2,4,7,6,9);"; + expect = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|us.d1.s1|us.d1.s2|\n" + + "+---+--------+--------+\n" + + "| 1| 1| 2|\n" + + "| 2| 2| 3|\n" + + "| 3| 3| 4|\n" + + "| 5| 5| 6|\n" + + "| 6| 6| 7|\n" + + "| 8| 8| 9|\n" + + "+---+--------+--------+\n" + + "Total line number = 6\n"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1 FROM us.* WHERE s1 IN (1,2,3,6,8) LIMIT 10;"; + expect = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|us.d1.s1|us.d2.s1|\n" + + "+---+--------+--------+\n" + + "| 1| 1| 1|\n" + + "| 2| 2| 2|\n" + + "| 3| 3| 3|\n" + + "| 6| 6| 6|\n" + + "| 8| 8| 8|\n" + + "|101| 101| 1|\n" + + "|102| 102| 2|\n" + + "|103| 103| 3|\n" + + "|106| 106| 6|\n" + + "|108| 108| 8|\n" + + "+---+--------+--------+\n" + + "Total line number = 10\n"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1 FROM us.* WHERE s1 |IN (1,2,3,6,8) LIMIT 10;"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1 FROM us.* WHERE s1 &IN (1,2,3,6,8);"; + expect = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|us.d1.s1|us.d2.s1|\n" + + "+---+--------+--------+\n" + + "| 1| 1| 1|\n" + + "| 2| 2| 2|\n" + + "| 3| 3| 3|\n" + + "| 6| 6| 6|\n" + + "| 8| 8| 8|\n" + + "+---+--------+--------+\n" + + "Total line number = 5\n"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1 FROM us.* WHERE s1 |NOT IN (1,2,3,6,8) AND s1 > 100 LIMIT 10;"; + expect = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|us.d1.s1|us.d2.s1|\n" + + "+---+--------+--------+\n" + + "|101| 101| 1|\n" + + "|102| 102| 2|\n" + + "|103| 103| 3|\n" + + "|104| 104| 4|\n" + + "|105| 105| 5|\n" + + "|106| 106| 6|\n" + + "|107| 107| 7|\n" + + "|108| 108| 8|\n" + + "|109| 109| 9|\n" + + "|110| 110| 10|\n" + + "+---+--------+--------+\n" + + "Total line number = 10\n"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1 FROM us.* WHERE NOT (s1 &IN (1,2,3,6,8)) AND s1 > 100 LIMIT 10;"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1 FROM us.* WHERE s1 &NOT IN (1,2,3,6,8) AND s1 > 100 LIMIT 10;"; + expect = + "ResultSets:\n" + + "+---+--------+--------+\n" + + "|key|us.d1.s1|us.d2.s1|\n" + + "+---+--------+--------+\n" + + "|104| 104| 4|\n" + + "|105| 105| 5|\n" + + "|107| 107| 7|\n" + + "|109| 109| 9|\n" + + "|110| 110| 10|\n" + + "|111| 111| 11|\n" + + "|112| 112| 12|\n" + + "|113| 113| 13|\n" + + "|114| 114| 14|\n" + + "|115| 115| 15|\n" + + "+---+--------+--------+\n" + + "Total line number = 10\n"; + executor.executeAndCompare(statement, expect); + + statement = "SELECT s1 FROM us.* WHERE NOT (s1 |IN (1,2,3,6,8)) AND s1 > 100 LIMIT 10;"; + executor.executeAndCompare(statement, expect); + } + + @Test + public void testInFilterTransformRule() { + // 插入数据 + StringBuilder insert = new StringBuilder(); + insert.append("INSERT INTO us.d2 (key, s1, s2) VALUES "); + int rows = 1000; + for (int i = 0; i < rows; i++) { + insert.append(String.format("(%d, %d, %d)", i, i % 100, i % 1000)); + if (i != rows - 1) { + insert.append(","); + } + } + insert.append(";"); + executor.execute(insert.toString()); + + String openRule = "SET RULES InFilterTransformRule=on;"; + String closeRule = "SET RULES InFilterTransformRule=off;"; + + String statement, openRes, closeRes, openExplain, closeExplain; + statement = "SELECT s1,s2 FROM us.d1 WHERE s1 = 1 OR s1 = 2 OR s1 = 3;"; + executor.execute(openRule); + openRes = executor.execute(statement); + openExplain = executor.execute("EXPLAIN " + statement); + executor.execute(closeRule); + closeRes = executor.execute(statement); + closeExplain = executor.execute("EXPLAIN " + statement); + + assertEquals(openRes, closeRes); + // 由于in filter使用的Hashset每次输出元素的顺序不固定,所以只能判断是否包含 + assertTrue(openExplain.contains("us.d1.s1 in")); + assertTrue(closeExplain.contains("us.d1.s1 == 1 || us.d1.s1 == 2 || us.d1.s1 == 3")); + + statement = "SELECT s1 FROM us.* WHERE s1 &= 1 OR s1 &= 2 OR s1 |= 3 OR s1 |= 4;"; + executor.execute(openRule); + openRes = executor.execute(statement); + openExplain = executor.execute("EXPLAIN " + statement); + executor.execute(closeRule); + closeRes = executor.execute(statement); + closeExplain = executor.execute("EXPLAIN " + statement); + + assertEquals(openRes, closeRes); + assertTrue(!openExplain.contains("us.*.s1 &in") && openExplain.contains("us.*.s1 in")); + assertTrue( + closeExplain.contains("us.*.s1 &== 1 || us.*.s1 &== 2 || us.*.s1 == 3 || us.*.s1 == 4")); + + statement = "SELECT s1,s2 FROM us.d1 WHERE s1 != 1 AND s1 != 2 AND s1 != 3;"; + executor.execute(openRule); + openRes = executor.execute(statement); + openExplain = executor.execute("EXPLAIN " + statement); + executor.execute(closeRule); + closeRes = executor.execute(statement); + closeExplain = executor.execute("EXPLAIN " + statement); + + assertEquals(openRes, closeRes); + assertTrue(openExplain.contains("us.d1.s1 ¬ in")); + assertTrue(closeExplain.contains("us.d1.s1 != 1 && us.d1.s1 != 2 && us.d1.s1 != 3")); + + statement = "SELECT s1 FROM us.* WHERE s1 &!= 1 AND s1 &!= 2 AND s1 |!= 3 AND s1 |!= 4;"; + executor.execute(openRule); + openRes = executor.execute(statement); + openExplain = executor.execute("EXPLAIN " + statement); + executor.execute(closeRule); + closeRes = executor.execute(statement); + closeExplain = executor.execute("EXPLAIN " + statement); + + assertEquals(openRes, closeRes); + assertTrue(openExplain.contains("us.*.s1 ¬ in") && !openExplain.contains("us.*.s1 not in")); + assertTrue( + closeExplain.contains("us.*.s1 &!= 1 && us.*.s1 &!= 2 && us.*.s1 != 3 && us.*.s1 != 4")); + } + @Test public void testSequence() { String insert = "insert into test.a(key, a, b) values (1, 1, 1.1), (2, 3, 3.1);"; diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java index 98e69672fe..693b0e9c10 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHUtils.java @@ -164,6 +164,7 @@ private static void validate(SessionExecuteSqlResult result, int queryId) { System.out.println("Number: " + number); System.out.println("Answer number: " + answerNumber); } + assert answerNumber - number < 1e-3 && number - answerNumber < 1e-3; } else { String resultString = From 132b10c2e7f939f60850652d423aa47c6bb8b26e Mon Sep 17 00:00:00 2001 From: Xu Yihao <48053143+Yihao-Xu@users.noreply.github.com> Date: Mon, 28 Oct 2024 10:54:40 +0800 Subject: [PATCH 20/33] Update LogicalFilterUtils.java (#481) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 谓词下推会将filter转换成CNF,之后FragmentPruningByFilter规则在提取key range的时候会将CNF再转成DNF,会导致指数爆炸的问题。本PR在FragmentPruningByFilter转DNF前进行一次操作将filter中的非key filter处理掉,以减少指数爆炸的问题。 --- .../logical/utils/LogicalFilterUtils.java | 70 ++++++++++++++++++- 1 file changed, 67 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java index 526514b1fc..16c038876f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/LogicalFilterUtils.java @@ -31,6 +31,8 @@ import java.util.function.Predicate; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; public class LogicalFilterUtils { @@ -364,13 +366,75 @@ private static Filter reverseFilter(Filter filter) { } } - public static List getKeyRangesFromFilter(Filter filter) { - filter = toDNF(filter.copy()); + public static List getKeyRangesFromFilter(final Filter filter) { + // 先将filter中的非keyfilter全部去掉,否则toDNF可能会指数爆炸 + Filter copy = removeExceptKeyFilter(filter.copy()); + if (copy == null || copy.getType() == FilterType.Bool) return new ArrayList<>(); + copy = toDNF(copy); List keyRanges = new ArrayList<>(); - extractKeyRange(keyRanges, filter); + extractKeyRange(keyRanges, copy); return unionKeyRanges(keyRanges); } + /** + * 去除所有非KeyFilter、AndFilter、OrFilter,以在toDNF时不会指数爆炸 + * + * @param filter 待处理的filter + * @return 处理后的filter + */ + private static Filter removeExceptKeyFilter(Filter filter) { + switch (filter.getType()) { + case And: + // AndFilter可以把所有的非KeyFilter、OrFilter去掉 + AndFilter andFilter = (AndFilter) filter; + // 展开所有的AndFilter children,并去除所有非Or、KeyFilter + List andChildren = + andFilter.getChildren().stream() + .flatMap( + child -> { + if (child.getType() == FilterType.And) { + return ((AndFilter) child).getChildren().stream(); + } + return Stream.of(child); + }) + .map(LogicalFilterUtils::removeExceptKeyFilter) + .filter(f -> f.getType() == FilterType.Key || f.getType() == FilterType.Or) + .collect(Collectors.toList()); + + if (andChildren.isEmpty()) return new BoolFilter(true); + if (andChildren.size() == 1) return andChildren.get(0); + return new AndFilter(andChildren); + case Or: + // 如果orFilter中有非KeyFilter/AndFilter,则返回True,因为有可能仅命中非KeyFilter,那就不受keyfilter的约束 + OrFilter orFilter = (OrFilter) filter; + List children = orFilter.getChildren(); + // 展开所有的OrFilter children + children = + children.stream() + .flatMap( + child -> { + if (child.getType() == FilterType.Or) { + return ((OrFilter) child).getChildren().stream(); + } + return Stream.of(child); + }) + .collect(Collectors.toList()); + + // 如果所有的children都是KeyFilter或者AndFilter,则返回一个新的OrFilter,否则返回True + if (children.stream() + .map(LogicalFilterUtils::removeExceptKeyFilter) + .allMatch(f -> f.getType() == FilterType.Key || f.getType() == FilterType.And)) { + return new OrFilter(children); + } + return new BoolFilter(true); + + case Key: + return filter; + default: + return new BoolFilter(true); + } + } + private static void extractKeyRange(List keyRanges, Filter f) { FilterType type = f.getType(); switch (type) { From c6b2c4397cb517dc32522de052e1c51648243178 Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Fri, 1 Nov 2024 14:51:04 +0800 Subject: [PATCH 21/33] test(tpc-h): add tpc-h tests with pushdown (#477) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加TPC-H下推测试 --- .github/workflows/standard-test-suite.yml | 6 + .github/workflows/tpc-h-pushdown.yml | 199 ++++++++++++++++++ .github/workflows/tpc-h.yml | 1 + test/src/test/resources/testConfig.properties | 2 +- 4 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/tpc-h-pushdown.yml diff --git a/.github/workflows/standard-test-suite.yml b/.github/workflows/standard-test-suite.yml index 67e41e0f75..7a09f09a9e 100644 --- a/.github/workflows/standard-test-suite.yml +++ b/.github/workflows/standard-test-suite.yml @@ -42,3 +42,9 @@ jobs: with: os-matrix: '["ubuntu-latest"]' metadata-matrix: '["zookeeper"]' + tpc-h-regression-test-pushdown: + uses: ./.github/workflows/tpc-h-pushdown.yml + with: + os-matrix: '["ubuntu-latest"]' + metadata-matrix: '["zookeeper"]' + db-matrix: '["InfluxDB", "FileSystem", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' diff --git a/.github/workflows/tpc-h-pushdown.yml b/.github/workflows/tpc-h-pushdown.yml new file mode 100644 index 0000000000..478c490647 --- /dev/null +++ b/.github/workflows/tpc-h-pushdown.yml @@ -0,0 +1,199 @@ +name: "TPC-H Regression Test With Push Down" + +on: + workflow_call: + inputs: + java-matrix: + description: "The java version to run the test on" + type: string + required: false + default: '["8"]' + python-matrix: + description: "The python version to run the test on" + type: string + required: false + default: '["3.9"]' + os-matrix: + description: "The operating system to run the test on" + type: string + required: false + default: '["ubuntu-latest", "macos-latest", "windows-latest"]' + metadata-matrix: + description: "The metadata to run the test on" + type: string + required: false + default: '["zookeeper", "etcd"]' + db-matrix: + description: "The database to run the test on" + type: string + required: false + default: '["IoTDB12", "InfluxDB", "FileSystem", "PostgreSQL", "Redis", "MongoDB", "MySQL"]' + +jobs: + TPC-H-Test-Push_Down: + timeout-minutes: 35 + strategy: + fail-fast: false + matrix: + java: ${{ fromJSON(inputs.java-matrix) }} + python-version: ${{ fromJSON(inputs.python-matrix) }} + os: ${{ fromJSON(inputs.os-matrix) }} + metadata: ${{ fromJSON(inputs.metadata-matrix) }} + DB-name: ${{ fromJSON(inputs.db-matrix) }} + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - name: Environment dependence + uses: ./.github/actions/dependence + with: + python-version: ${{ matrix.python-version }} + java: ${{ matrix.java }} + + - name: Display System Info + shell: bash + run: | + echo "Operating System: $(uname -a 2>/dev/null || ver)" + echo "Architecture: $(uname -m 2>/dev/null || echo %PROCESSOR_ARCHITECTURE%)" + echo "Java Version:" + java -version + echo "Python Version:" + python --version + echo "CPU Info:" + if [ "$(uname)" = "Linux" ]; then + lscpu + elif [ "$(uname)" = "Darwin" ]; then + sysctl -n machdep.cpu.brand_string + else + wmic cpu get name + fi + echo "Memory Info:" + if [ "$(uname)" = "Linux" ]; then + free -h + elif [ "$(uname)" = "Darwin" ]; then + vm_stat + else + systeminfo | findstr /C:"Total Physical Memory" + fi + + - name: Download TPC-H Data + shell: bash + run: | + wget https://github.com/IGinX-THU/IGinX-resources/raw/main/resources/tpc.7z + sudo apt-get install p7zip-full + 7za x tpc.7z + ls tpc + + - name: Run ZooKeeper + uses: ./.github/actions/zookeeperRunner + + - name: Run DB + uses: ./.github/actions/dbRunner + with: + DB-name: ${{ matrix.DB-name }} + + - name: Get Old Version IGinX + shell: bash + run: | + git clone https://github.com/IGinX-THU/IGinX.git + cp -rf test/src/test/resources/tpch/queries/* IGinX/test/src/test/resources/tpch/queries/ + cp -rf test/src/test/resources/tpch/sf0.1/* IGinX/test/src/test/resources/tpch/sf0.1/ + cp -rf test/src/test/resources/tpch/udf/* IGinX/test/src/test/resources/tpch/udf/ + cp -f test/src/test/resources/testConfig.properties IGinX/test/src/test/resources/testConfig.properties + # 新增tpc-h查询测试时,旧版本代码中没有这些查询,需从新分支复制过去,添加完所有的tpc_h测试后可删除这些复制命令 + + - name: Rewrite DB Conf in Old IGinX + uses: ./.github/actions/dbConfWriter + with: + DB-name: ${{ matrix.DB-name }} + Root-Dir-Path: "IGinX" + + - name: Install Old IGinX with Maven + shell: bash + run: | + cd IGinX + mvn clean package -DskipTests -P-format -q + cp -rf ${GITHUB_WORKSPACE}/test/src/test/resources/tpch/udf/* core/target/iginx-core-${VERSION}/udf_funcs/python_scripts/ + + - name: Change Old IGinX Config + uses: ./.github/actions/confWriter + with: + DB-name: ${{ matrix.DB-name }} + Push-Down: "true" + Set-Filter-Fragment-OFF: "true" + Metadata: ${{ matrix.metadata }} + Root-Dir-Path: "IGinX" + + - name: Install New IGinX with Maven + shell: bash + run: mvn clean package -DskipTests -P-format -q + + - name: Change New IGinX Config + uses: ./.github/actions/confWriter + with: + DB-name: ${{ matrix.DB-name }} + Push-Down: "true" + Set-Filter-Fragment-OFF: "true" + Metadata: ${{ matrix.metadata }} + + - name: Insert Data into DB + uses: ./.github/actions/tpchDataWriter + with: + DB-name: ${{ matrix.DB-name }} + + - name: Run 1st Regression Test + id: test1 + uses: ./.github/actions/tpchSingleTest + + - name: Run 2nd Regression Test + id: test2 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test1.outputs.status }} + + - name: Run 3rd Regression Test + id: test3 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test2.outputs.status }} + + - name: Run 4th Regression Test + id: test4 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test3.outputs.status }} + + - name: Run 5th Regression Test + id: test5 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test4.outputs.status }} + + - name: Run 6th Regression Test + id: test6 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test5.outputs.status }} + + - name: Run 7th Regression Test + id: test7 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test6.outputs.status }} + + - name: Run 8th Regression Test + id: test8 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test7.outputs.status }} + + - name: Run 9th Regression Test + id: test9 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test8.outputs.status }} + + - name: Run 10th Regression Test + id: test10 + uses: ./.github/actions/tpchSingleTest + with: + status: ${{ steps.test9.outputs.status }} diff --git a/.github/workflows/tpc-h.yml b/.github/workflows/tpc-h.yml index 854ba2c275..4f30dd1ae0 100644 --- a/.github/workflows/tpc-h.yml +++ b/.github/workflows/tpc-h.yml @@ -112,6 +112,7 @@ jobs: run: | cd IGinX mvn clean package -DskipTests -P-format -q + cp -rf ${GITHUB_WORKSPACE}/test/src/test/resources/tpch/udf/* core/target/iginx-core-${VERSION}/udf_funcs/python_scripts/ - name: Change Old IGinX Config uses: ./.github/actions/confWriter diff --git a/test/src/test/resources/testConfig.properties b/test/src/test/resources/testConfig.properties index 8996b4f13c..7d1266cc96 100644 --- a/test/src/test/resources/testConfig.properties +++ b/test/src/test/resources/testConfig.properties @@ -69,6 +69,6 @@ is_scaling=false DBCE_test_way=oriHasDataExpHasData # TPC-H test -query_ids=1,2,3,4,5,6,9,10,13,16,17,19,20,21 +query_ids=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 max_repetitions_num=10 regression_threshold=0.3 From f923ab8bea5a94eb48a23ca945ac09863011ae86 Mon Sep 17 00:00:00 2001 From: Xu Yihao <48053143+Yihao-Xu@users.noreply.github.com> Date: Thu, 7 Nov 2024 14:59:12 +0800 Subject: [PATCH 22/33] fix(optimize): fix column pruning rule for UDF (#491) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复列裁剪在对udf处理上的问题 * Update ColumnPruningRule.java --- .../optimizer/rules/ColumnPruningRule.java | 2 +- .../iginx/integration/func/udf/UDFIT.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java index 810f5472d6..0f5d350d78 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/ColumnPruningRule.java @@ -434,7 +434,7 @@ private void changeColumnsFromFunctionCallList( newColumns.add(column); } } - columns.clear(); + columns.remove(functionCall.getFunctionStr()); columns.addAll(newColumns); } else { List columnNames = functionCall.getParams().getPaths(); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java index 5018c88d0e..550ae41358 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java @@ -1408,4 +1408,23 @@ public void testModuleInstallFail() { } } } + + @Test + public void testUDFColumnPruning() { + String statement = "SELECT cos(s1), cos(s2) FROM us.d1 LIMIT 5;"; + String expected = + "ResultSets:\n" + + "+---+-------------------+-------------------+\n" + + "|key| cos(us.d1.s1)| cos(us.d1.s2)|\n" + + "+---+-------------------+-------------------+\n" + + "| 0| 1.0| 0.5403023058681398|\n" + + "| 1| 0.5403023058681398|-0.4161468365471424|\n" + + "| 2|-0.4161468365471424|-0.9899924966004454|\n" + + "| 3|-0.9899924966004454|-0.6536436208636119|\n" + + "| 4|-0.6536436208636119|0.28366218546322625|\n" + + "+---+-------------------+-------------------+\n" + + "Total line number = 5\n"; + + assertEquals(expected, tool.execute(statement).getResultInString(false, "")); + } } From 826e85b3cda3b4cb61aa4bef3e151b608856bf82 Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Sat, 9 Nov 2024 10:00:54 +0800 Subject: [PATCH 23/33] fix(sql): fix filter in sql with tagKV (#478) fix filter in sql with tagKV to enable the support of TSBS --- .../logical/generator/QueryGenerator.java | 9 +- .../naive/NaiveOperatorMemoryExecutor.java | 40 + .../memory/execute/utils/FilterUtils.java | 14 +- .../iginx/engine/shared/data/read/Header.java | 4 +- .../shared/operator/RemoveNullColumn.java | 53 + .../shared/operator/type/OperatorType.java | 1 + .../iginx/influxdb/InfluxDBStorage.java | 22 +- .../tsinghua/iginx/iotdb/IoTDBStorage.java | 50 +- .../iginx/relational/RelationalStorage.java | 118 +- .../integration/func/session/PySessionIT.java | 26 +- .../integration/func/session/SessionIT.java | 5 +- .../integration/func/sql/SQLSessionIT.java | 1424 +++++++++-------- .../iginx/integration/func/tag/TagIT.java | 177 +- .../iginx/integration/func/udf/UDFIT.java | 38 +- 14 files changed, 1114 insertions(+), 867 deletions(-) create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/RemoveNullColumn.java diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java index 984ecbf0bb..e2c5d7c963 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java @@ -115,7 +115,14 @@ protected Operator generateRoot(Statement statement) { root = new Rename(new OperatorSource(root), cte.getAliasList()); cte.setRoot(root); }); - return generateRoot(selectStatement); + + // 计算语句的操作符树 + Operator root = generateRoot(selectStatement); + + // 去除最终结果的空列 + root = new RemoveNullColumn(new OperatorSource(root)); + + return root; } private Operator generateRoot(SelectStatement selectStatement) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java index 9e9dc54446..23e6f6c3ff 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java @@ -142,6 +142,8 @@ public RowStream executeUnaryOperator( return executeGroupBy((GroupBy) operator, table); case AddSequence: return executeAddSequence((AddSequence) operator, table); + case RemoveNullColumn: + return executeRemoveNullColumn(table); case Distinct: return executeDistinct((Distinct) operator, table); case ValueToSelectedPath: @@ -568,6 +570,44 @@ private RowStream executeDistinct(Distinct distinct, Table table) throws Physica return new Table(newHeader, targetRows); } + private RowStream executeRemoveNullColumn(Table table) { + Header header = table.getHeader(); + int fieldSize = header.getFieldSize(); + List rows = table.getRows(); + + List remainIndexes = new ArrayList<>(); + for (int i = 0; i < fieldSize; i++) { + int finalI = i; + boolean isEmptyColumn = rows.stream().allMatch(row -> row.getValue(finalI) == null); + if (!isEmptyColumn) { + remainIndexes.add(finalI); + } + } + + int remainColumnSize = remainIndexes.size(); + if (remainColumnSize == fieldSize) { // 没有空列 + return table; + } else if (remainIndexes.isEmpty()) { // 全是空列 + return rows.isEmpty() ? table : Table.EMPTY_TABLE; + } + + List newFields = new ArrayList<>(remainColumnSize); + for (int index : remainIndexes) { + newFields.add(header.getField(index)); + } + Header newHeader = new Header(header.getKey(), newFields); + + List newRows = new ArrayList<>(); + for (Row row : rows) { + Object[] values = new Object[remainColumnSize]; + for (int i = 0; i < remainColumnSize; i++) { + values[i] = row.getValue(remainIndexes.get(i)); + } + newRows.add(new Row(newHeader, row.getKey(), values)); + } + return new Table(newHeader, newRows); + } + private RowStream executeValueToSelectedPath(ValueToSelectedPath operator, Table table) { String prefix = operator.getPrefix(); boolean prefixIsEmpty = prefix.isEmpty(); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java index 51608b9473..c34d771bbe 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/FilterUtils.java @@ -64,7 +64,7 @@ public static boolean validate(Filter filter, Row row) throws PhysicalException if (row.getKey() == Row.NON_EXISTED_KEY) { return false; } - return validateTimeFilter(keyFilter, row); + return validateKeyFilter(keyFilter, row); case Value: ValueFilter valueFilter = (ValueFilter) filter; return validateValueFilter(valueFilter, row); @@ -125,7 +125,7 @@ private static boolean validateInFilter(InFilter inFilter, Row row) { } } - private static boolean validateTimeFilter(KeyFilter keyFilter, Row row) { + private static boolean validateKeyFilter(KeyFilter keyFilter, Row row) { long timestamp = row.getKey(); switch (keyFilter.getOp()) { case E: @@ -161,8 +161,8 @@ private static boolean validateValueFilter(ValueFilter valueFilter, Row row) return false; } - if (path.contains("*")) { // 带通配符的filter - List valueList = row.getAsValueByPattern(path); + List valueList = row.getAsValueByPattern(path); + if (valueList.size() > 1) { // filter的路径名带通配符或同一列名有多个tag if (Op.isOrOp(valueFilter.getOp())) { for (Value value : valueList) { if (value == null || value.isNull()) { @@ -186,12 +186,14 @@ private static boolean validateValueFilter(ValueFilter valueFilter, Row row) } else { throw new IllegalArgumentException("Unknown op type: " + valueFilter.getOp()); } - } else { - Value value = row.getAsValue(path); + } else if (valueList.size() == 1) { + Value value = valueList.get(0); if (value == null || value.isNull()) { // value是空值,则认为不可比较 return false; } return validateValueCompare(valueFilter.getOp(), value, targetValue); + } else { + return false; } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java index a427238faa..af6940bd37 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/data/read/Header.java @@ -108,7 +108,7 @@ public List patternIndexOf(String pattern) { List indexList = new ArrayList<>(); fields.forEach( field -> { - if (Pattern.matches(StringUtils.reformatPath(pattern), field.getFullName())) { + if (Pattern.matches(StringUtils.reformatPath(pattern), field.getName())) { indexList.add(indexOf(field.getFullName())); } }); @@ -119,7 +119,7 @@ public List patternIndexOf(String pattern) { @Override public String toString() { - return "Header{" + "time=" + key + ", fields=" + fields + '}'; + return "Header{" + "key=" + key + ", fields=" + fields + '}'; } @Override diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/RemoveNullColumn.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/RemoveNullColumn.java new file mode 100644 index 0000000000..6ebadf01c0 --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/RemoveNullColumn.java @@ -0,0 +1,53 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * TSIGinX@gmail.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package cn.edu.tsinghua.iginx.engine.shared.operator; + +import cn.edu.tsinghua.iginx.engine.shared.operator.type.OperatorType; +import cn.edu.tsinghua.iginx.engine.shared.source.Source; + +public class RemoveNullColumn extends AbstractUnaryOperator { + + public RemoveNullColumn(Source source) { + super(OperatorType.RemoveNullColumn, source); + } + + @Override + public Operator copy() { + return new RemoveNullColumn(getSource().copy()); + } + + @Override + public UnaryOperator copyWithSource(Source source) { + return new RemoveNullColumn(source); + } + + @Override + public String getInfo() { + return "RemoveNullColumn"; + } + + @Override + public boolean equals(Object object) { + if (this == object) { + return true; + } + return object != null && getClass() == object.getClass(); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java index 0d430d8045..80547b224a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/type/OperatorType.java @@ -66,6 +66,7 @@ public enum OperatorType { GroupBy, Distinct, AddSequence, + RemoveNullColumn, ProjectWaitingForPath, ValueToSelectedPath; diff --git a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java index 450f621b4d..0bca3a2c83 100644 --- a/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java +++ b/dataSource/influxdb/src/main/java/cn/edu/tsinghua/iginx/influxdb/InfluxDBStorage.java @@ -25,6 +25,7 @@ import cn.edu.tsinghua.iginx.engine.logical.utils.LogicalFilterUtils; import cn.edu.tsinghua.iginx.engine.physical.exception.PhysicalException; import cn.edu.tsinghua.iginx.engine.physical.exception.StorageInitializationException; +import cn.edu.tsinghua.iginx.engine.physical.memory.execute.utils.FilterUtils; import cn.edu.tsinghua.iginx.engine.physical.storage.IStorage; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.Column; import cn.edu.tsinghua.iginx.engine.physical.storage.domain.DataArea; @@ -73,6 +74,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -623,7 +625,12 @@ private String generateQueryStatement( statement += filterStr; } - if (filter != null) { + // TODO:filter中的path有多个tag时暂未实现下推 + List filterPaths = FilterUtils.getAllPathsFromFilter(filter); + List columns = getColumns(new HashSet<>(filterPaths), tagFilter); + boolean hasMultiTags = hasMultiTags(columns); + + if (filter != null && !hasMultiTags) { boolean patternHasMeasurementWildCards = false; for (String path : paths) { if (path.startsWith("*")) { @@ -687,6 +694,19 @@ private String generateQueryStatement( return statement; } + private boolean hasMultiTags(List columns) { + Map>> tagsMap = new HashMap<>(); + for (Column column : columns) { + String path = column.getPath(); + if (!tagsMap.containsKey(path)) { + tagsMap.put(path, new ArrayList<>(Collections.singletonList(column.getTags()))); + } else if (!tagsMap.get(path).contains(column.getTags())) { + return true; + } + } + return false; + } + private Filter setTrueByMeasurement(Filter filter, String measurementName) { switch (filter.getType()) { case And: diff --git a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java index 0314bf967b..12c16d6722 100644 --- a/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java +++ b/dataSource/iotdb12/src/main/java/cn/edu/tsinghua/iginx/iotdb/IoTDBStorage.java @@ -911,20 +911,14 @@ private boolean match(String s, String p) { } private String getFilterString(Filter filter, String storageUnit) throws PhysicalException { - String filterStr = FilterTransformer.toString(filter); - if (filterStr.contains("*")) { - List columns = new ArrayList<>(); - Map columns2Fragment = new HashMap<>(); - getColumns2StorageUnit(columns, columns2Fragment, new HashSet<>(), null); - filterStr = - FilterTransformer.toString( - expandFilterWildcard(filter.copy(), columns, columns2Fragment, storageUnit)); - } - - return filterStr; + List columns = new ArrayList<>(); + Map columns2Fragment = new HashMap<>(); + getColumns2StorageUnit(columns, columns2Fragment, new HashSet<>(), null); + Filter fullFilter = expandFilter(filter.copy(), columns, columns2Fragment, storageUnit); + return FilterTransformer.toString(fullFilter); } - private Filter expandFilterWildcard( + private Filter expandFilter( Filter filter, List columns, Map columns2Fragment, @@ -935,9 +929,9 @@ private Filter expandFilterWildcard( List children = andFilter.getChildren(); List newAndFilters = new ArrayList<>(); for (Filter f : children) { - Filter newFilter = expandFilterWildcard(f, columns, columns2Fragment, storageUnit); + Filter newFilter = expandFilter(f, columns, columns2Fragment, storageUnit); if (newFilter != null) { - newAndFilters.add(expandFilterWildcard(f, columns, columns2Fragment, storageUnit)); + newAndFilters.add(expandFilter(f, columns, columns2Fragment, storageUnit)); } } return new AndFilter(newAndFilters); @@ -946,17 +940,16 @@ private Filter expandFilterWildcard( List orChildren = orFilter.getChildren(); List newOrFilters = new ArrayList<>(); for (Filter f : orChildren) { - Filter newFilter = expandFilterWildcard(f, columns, columns2Fragment, storageUnit); + Filter newFilter = expandFilter(f, columns, columns2Fragment, storageUnit); if (newFilter != null) { - newOrFilters.add(expandFilterWildcard(f, columns, columns2Fragment, storageUnit)); + newOrFilters.add(expandFilter(f, columns, columns2Fragment, storageUnit)); } } return new OrFilter(newOrFilters); case Not: NotFilter notFilter = (NotFilter) filter; Filter notChild = notFilter.getChild(); - Filter newNotFilter = - expandFilterWildcard(notChild, columns, columns2Fragment, storageUnit); + Filter newNotFilter = expandFilter(notChild, columns, columns2Fragment, storageUnit); if (newNotFilter != null) return new NotFilter(newNotFilter); else return null; case Key: @@ -965,16 +958,15 @@ private Filter expandFilterWildcard( ValueFilter valueFilter = (ValueFilter) filter; DataType valueType = valueFilter.getValue().getDataType(); String path = valueFilter.getPath(); - - if (path.contains("*")) { - List matchedPath = - getMatchPath(path, valueType, columns, columns2Fragment, storageUnit); - if (matchedPath.size() == 0) { - return null; - } - + List matchedPaths = + getMatchPath(path, valueType, columns, columns2Fragment, storageUnit); + if (matchedPaths.size() == 1) { + return new ValueFilter(matchedPaths.get(0), valueFilter.getOp(), valueFilter.getValue()); + } else if (matchedPaths.isEmpty()) { + return null; + } else { List newFilters = new ArrayList<>(); - for (String p : matchedPath) { + for (String p : matchedPaths) { newFilters.add(new ValueFilter(p, valueFilter.getOp(), valueFilter.getValue())); } if (Op.isOrOp(valueFilter.getOp())) { @@ -982,8 +974,6 @@ private Filter expandFilterWildcard( } else { return new AndFilter(newFilters); } - } else { - return filter; } case In: InFilter inFilter = (InFilter) filter; @@ -1043,7 +1033,7 @@ private List getMatchPath( Matcher matcher = pattern.matcher(columnName); if (matcher.find()) { - matchedPath.add(columnName); + matchedPath.add(TagKVUtils.toFullName(columnName, col.getTags())); } } diff --git a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java index 3c746bc0eb..7acfd9b345 100644 --- a/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java +++ b/dataSource/relational/src/main/java/cn/edu/tsinghua/iginx/relational/RelationalStorage.java @@ -533,6 +533,8 @@ private TaskExecuteResult executeProjectWithFilter( Map tableNameToColumnNames = splitAndMergeQueryPatterns(databaseName, project.getPatterns()); + Filter expandFilter = expandFilter(filter.copy(), tableNameToColumnNames); + String statement; // 如果table>1的情况下存在Value或Path Filter,说明filter的匹配需要跨table,此时需要将所有table join到一起进行查询 if (!filter.toString().contains("*") @@ -541,7 +543,7 @@ && filterContainsType(Arrays.asList(FilterType.Value, FilterType.Path), filter)) for (Map.Entry entry : tableNameToColumnNames.entrySet()) { String tableName = entry.getKey(); String quotColumnNames = getQuotColumnNames(entry.getValue()); - String filterStr = filterTransformer.toString(filter); + String filterStr = filterTransformer.toString(expandFilter); statement = String.format( relationalMeta.getQueryStatement(), @@ -593,23 +595,8 @@ else if (!tableNameToColumnNames.isEmpty()) { // 将所有表进行full join String fullTableName = getFullJoinTables(tableNames, fullColumnNamesList); - // 对通配符做处理,将通配符替换成对应的列名 - if (filterTransformer.toString(filter).contains("*")) { - // 把fullColumnNamesList中的列名全部用removeFullColumnNameQuote去掉引号 - fullColumnNamesList.replaceAll( - columnNames -> { - List newColumnNames = new ArrayList<>(); - for (String columnName : columnNames) { - newColumnNames.add(removeFullColumnNameQuote(columnName)); - } - return newColumnNames; - }); - filter = generateWildCardsFilter(filter, fullColumnNamesList); - filter = LogicalFilterUtils.mergeTrue(filter); - } - String fullColumnNamesStr = fullColumnNames.toString(); - String filterStr = filterTransformer.toString(filter); + String filterStr = filterTransformer.toString(expandFilter); String orderByKey = RelationSchema.getQuoteFullName(tableNames.get(0), KEY_NAME, relationalMeta.getQuote()); if (!relationalMeta.isSupportFullJoin()) { @@ -836,54 +823,68 @@ private String getDummyFullJoinTables( return fullTableName.toString(); } - private Filter generateWildCardsFilter(Filter filter, List> columnNamesList) { + private Filter expandFilter(Filter filter, Map tableNameToColumnNames) { + List> fullColumnNamesList = new ArrayList<>(); + for (Map.Entry entry : tableNameToColumnNames.entrySet()) { + List fullColumnNames = new ArrayList<>(Arrays.asList(entry.getValue().split(", "))); + // 将columnNames中的列名加上tableName前缀 + fullColumnNames.replaceAll( + s -> RelationSchema.getQuoteFullName(entry.getKey(), s, relationalMeta.getQuote())); + fullColumnNamesList.add(fullColumnNames); + } + // 把fullColumnNamesList中的列名全部用removeFullColumnNameQuote去掉引号 + fullColumnNamesList.replaceAll( + columnNames -> { + List newColumnNames = new ArrayList<>(); + for (String columnName : columnNames) { + newColumnNames.add(removeFullColumnNameQuote(columnName)); + } + return newColumnNames; + }); + filter = expandFilter(filter, fullColumnNamesList); + filter = LogicalFilterUtils.mergeTrue(filter); + return filter; + } + + private Filter expandFilter(Filter filter, List> columnNamesList) { switch (filter.getType()) { case And: List andChildren = ((AndFilter) filter).getChildren(); for (Filter child : andChildren) { - Filter newFilter = generateWildCardsFilter(child, columnNamesList); + Filter newFilter = expandFilter(child, columnNamesList); andChildren.set(andChildren.indexOf(child), newFilter); } return new AndFilter(andChildren); case Or: List orChildren = ((OrFilter) filter).getChildren(); for (Filter child : orChildren) { - Filter newFilter = generateWildCardsFilter(child, columnNamesList); + Filter newFilter = expandFilter(child, columnNamesList); orChildren.set(orChildren.indexOf(child), newFilter); } return new OrFilter(orChildren); case Not: Filter notChild = ((NotFilter) filter).getChild(); - Filter newFilter = generateWildCardsFilter(notChild, columnNamesList); + Filter newFilter = expandFilter(notChild, columnNamesList); return new NotFilter(newFilter); case Value: - String path = ((ValueFilter) filter).getPath(); - if (path.contains("*")) { - List matchedPath = getMatchedPath(path, columnNamesList); - if (matchedPath.size() == 0) { - return new BoolFilter(true); - } else if (matchedPath.size() == 1) { - return new ValueFilter( - matchedPath.get(0), - ((ValueFilter) filter).getOp(), - ((ValueFilter) filter).getValue()); + ValueFilter valueFilter = ((ValueFilter) filter); + String path = valueFilter.getPath(); + List matchedPaths = getMatchedPath(path, columnNamesList); + if (matchedPaths.isEmpty()) { + return new BoolFilter(true); + } else if (matchedPaths.size() == 1) { + return new ValueFilter(matchedPaths.get(0), valueFilter.getOp(), valueFilter.getValue()); + } else { + List newFilters = new ArrayList<>(); + for (String matched : matchedPaths) { + newFilters.add(new ValueFilter(matched, valueFilter.getOp(), valueFilter.getValue())); + } + if (Op.isOrOp(valueFilter.getOp())) { + return new OrFilter(newFilters); } else { - List valueChildren = new ArrayList<>(); - for (String matched : matchedPath) { - valueChildren.add( - new ValueFilter( - matched, ((ValueFilter) filter).getOp(), ((ValueFilter) filter).getValue())); - } - - if (Op.isOrOp(((ValueFilter) filter).getOp())) { - return new OrFilter(valueChildren); - } - return new AndFilter(valueChildren); + return new AndFilter(newFilters); } } - - return filter; - case In: InFilter inFilter = (InFilter) filter; String inPath = inFilter.getPath(); @@ -936,7 +937,7 @@ private Filter generateWildCardsFilter(Filter filter, List> columnN if (pathB.contains("*")) { if (filter.getType() != FilterType.Path) { - return generateWildCardsFilter(filter, columnNamesList); + return expandFilter(filter, columnNamesList); } List matchedPath = getMatchedPath(pathB, columnNamesList); @@ -975,10 +976,9 @@ private List getMatchedPath(String path, List> columnNamesL List matchedPath = new ArrayList<>(); path = StringUtils.reformatPath(path); Pattern pattern = Pattern.compile("^" + path + "$"); - for (int i = 0; i < columnNamesList.size(); i++) { - List columnNames = columnNamesList.get(i); + for (List columnNames : columnNamesList) { for (String columnName : columnNames) { - Matcher matcher = pattern.matcher(columnName); + Matcher matcher = pattern.matcher(splitFullName(columnName).k); if (matcher.find()) { matchedPath.add(columnName); } @@ -1111,7 +1111,7 @@ private TaskExecuteResult executeProjectDummyWithFilter(Project project, Filter if (!filter.toString().contains("*") && !(tableNameToColumnNames.size() > 1 && filterContainsType(Arrays.asList(FilterType.Value, FilterType.Path), filter))) { - + Filter expandFilter = expandFilter(filter.copy(), tableNameToColumnNames); for (Map.Entry entry : splitEntry.getValue().entrySet()) { String tableName = entry.getKey(); String fullQuotColumnNames = getQuotColumnNames(entry.getValue()); @@ -1121,7 +1121,8 @@ && filterContainsType(Arrays.asList(FilterType.Value, FilterType.Path), filter)) String filterStr = filterTransformer.toString( dummyFilterSetTrueByColumnNames( - cutFilterDatabaseNameForDummy(filter.copy(), databaseName), fullPathList)); + cutFilterDatabaseNameForDummy(expandFilter.copy(), databaseName), + fullPathList)); String concatKey = buildConcat(fullPathList); statement = String.format( @@ -1172,20 +1173,7 @@ else if (!tableNameToColumnNames.isEmpty()) { cutFilterDatabaseNameForDummy(filter.copy(), databaseName), fullColumnNamesList.stream().flatMap(List::stream).collect(Collectors.toList())); - // 对通配符做处理,将通配符替换成对应的列名 - if (filterTransformer.toString(copyFilter).contains("*")) { - // 把fullColumnNamesList中的列名全部用removeFullColumnNameQuote去掉引号 - fullColumnNamesList.replaceAll( - columnNames -> { - List newColumnNames = new ArrayList<>(); - for (String columnName : columnNames) { - newColumnNames.add(removeFullColumnNameQuote(columnName)); - } - return newColumnNames; - }); - copyFilter = generateWildCardsFilter(copyFilter, fullColumnNamesList); - copyFilter = LogicalFilterUtils.mergeTrue(copyFilter); - } + copyFilter = expandFilter(copyFilter, tableNameToColumnNames); String filterStr = filterTransformer.toString(copyFilter); String orderByKey = diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java index 6cd358a541..f222e79e54 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/PySessionIT.java @@ -441,19 +441,19 @@ public void testDeleteRow() { } // 检查Python脚本的输出是否符合预期 String expected = - " key test.a.a test.a.b test.b.b test.c.c\n" - + "0 0 b'a' b'b' None None\n" - + "1 2 None None None b'c'\n" - + "2 3 b'Q' b'W' None b'R'\n" - + "3 5 None None None b'b'\n" - + "4 6 b'b' None None None\n" - + "5 7 b'R' b'E' None b'Q'\n" - + " key test.a.a test.a.b test.b.b test.c.c\n" - + "0 0 b'a' b'b' None None\n" - + "1 2 None None None b'c'\n" - + "2 3 b'Q' b'W' None b'R'\n" - + "3 5 None None None b'b'\n" - + "4 7 b'R' b'E' None b'Q'\n"; + " key test.a.a test.a.b test.c.c\n" + + "0 0 b'a' b'b' None\n" + + "1 2 None None b'c'\n" + + "2 3 b'Q' b'W' b'R'\n" + + "3 5 None None b'b'\n" + + "4 6 b'b' None None\n" + + "5 7 b'R' b'E' b'Q'\n" + + " key test.a.a test.a.b test.c.c\n" + + "0 0 b'a' b'b' None\n" + + "1 2 None None b'c'\n" + + "2 3 b'Q' b'W' b'R'\n" + + "3 5 None None b'b'\n" + + "4 7 b'R' b'E' b'Q'\n"; assertEquals(expected, result); } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java index d036319f14..48ebedf244 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java @@ -573,7 +573,8 @@ public void sessionTest() throws SessionException, InterruptedException { long key = delDataInColumnDataSet.getKeys()[i]; assertEquals(i + START_KEY, key); List result = delDataInColumnDataSet.getValues().get(i); - for (int j = 0; j < dataInColumnLen; j++) { + assertEquals(dataInColumnLen - deleteDataInColumnLen, delDataInColumnResPaths.size()); + for (int j = 0; j < dataInColumnLen - deleteDataInColumnLen; j++) { int pathNum = getPathNum(delDataInColumnResPaths.get(j)); assertNotEquals(pathNum, -1); if (pathNum < currPath + deleteDataInColumnLen) { // Here is the removed rows @@ -969,7 +970,7 @@ public void sessionTest() throws SessionException, InterruptedException { long key = dtDelColDataSet.getKeys()[i]; assertEquals(i + START_KEY, key); List result = dtDelColDataSet.getValues().get(i); - for (int j = 0; j < 6; j++) { + for (int j = 0; j < 4; j++) { int currPathPos = getPathNum(dtDelColResPaths.get(j)) - currPath; if (currPathPos < dtDelColumnNum) { assertNull(result.get(j)); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 665d4eac9a..922d15486b 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -2733,15 +2733,16 @@ public void testGroupBy() { query = "explain select avg(a), sum(b), c, b, d from test group by c, b, d order by c, b, d;"; expected = "ResultSets:\n" - + "+----------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: avg(test.a),sum(test.b),test.c,test.b,test.d|\n" - + "| +--Sort | Sort| SortBy: test.c,test.b,test.d, SortType: ASC,ASC,ASC|\n" - + "| +--GroupBy | GroupBy|GroupByCols: test.c,test.b,test.d, FuncList(Name, FuncType): (avg, System),(sum, System), MappingType: SetMapping isDistinct: false|\n" - + "| +--Project| Project| Patterns: test.a,test.b,test.c,test.d, Target DU: unit0000000002|\n" - + "+----------------+-------------+-----------------------------------------------------------------------------------------------------------------------------------+\n" - + "Total line number = 4\n"; + + "+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: avg(test.a),sum(test.b),test.c,test.b,test.d|\n" + + "| +--Sort | Sort| SortBy: test.c,test.b,test.d, SortType: ASC,ASC,ASC|\n" + + "| +--GroupBy | GroupBy|GroupByCols: test.c,test.b,test.d, FuncList(Name, FuncType): (avg, System),(sum, System), MappingType: SetMapping isDistinct: false|\n" + + "| +--Project| Project| Patterns: test.a,test.b,test.c,test.d, Target DU: unit0000000002|\n" + + "+------------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------+\n" + + "Total line number = 5\n"; executor.executeAndCompare(query, expected); } @@ -6457,28 +6458,30 @@ public void testExplain() { String explain = "explain select max(s2), min(s1) from us.d1;"; String expected = "ResultSets:\n" - + "+-----------------+-------------+--------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+-----------------+-------------+--------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: max(us.d1.s2),min(us.d1.s1)|\n" - + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (max, System), (min, System), MappingType: SetMapping, isDistinct: false|\n" - + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" - + "+-----------------+-------------+--------------------------------------------------------------------------------------------------+\n" - + "Total line number = 3\n"; + + "+-------------------+----------------+--------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+-------------------+----------------+--------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: max(us.d1.s2),min(us.d1.s1)|\n" + + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (max, System), (min, System), MappingType: SetMapping, isDistinct: false|\n" + + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" + + "+-------------------+----------------+--------------------------------------------------------------------------------------------------+\n" + + "Total line number = 4\n"; executor.executeAndCompare(explain, expected); explain = "explain select s1 from us.d1 where s1 > 10 and s1 < 100;"; expected = "ResultSets:\n" - + "+----------------+-------------+---------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------+-------------+---------------------------------------------+\n" - + "|Reorder | Reorder| Order: us.d1.s1|\n" - + "| +--Project | Project| Patterns: us.d1.s1|\n" - + "| +--Select | Select| Filter: (us.d1.s1 > 10 && us.d1.s1 < 100)|\n" - + "| +--Project| Project|Patterns: us.d1.s1, Target DU: unit0000000000|\n" - + "+----------------+-------------+---------------------------------------------+\n" - + "Total line number = 4\n"; + + "+------------------+----------------+---------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------+----------------+---------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.d1.s1|\n" + + "| +--Project | Project| Patterns: us.d1.s1|\n" + + "| +--Select | Select| Filter: (us.d1.s1 > 10 && us.d1.s1 < 100)|\n" + + "| +--Project| Project|Patterns: us.d1.s1, Target DU: unit0000000000|\n" + + "+------------------+----------------+---------------------------------------------+\n" + + "Total line number = 5\n"; executor.executeAndCompare(explain, expected); explain = "explain physical select max(s2), min(s1) from us.d1;"; @@ -7065,351 +7068,370 @@ public void testFilterPushDownExplain() { new Pair<>( "explain SELECT * FROM us WHERE d1.s1 < 4;", "ResultSets:\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 4)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 4)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 4)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "Total line number = 10\n"), + + "+--------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 4)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 4)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 4)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "explain SELECT * FROM us WHERE d1.s1 < 5 and d1.s2 > 2;", "ResultSets:\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 5 && us.d1.s2 > 2)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 5 && us.d1.s2 > 2)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 5 && us.d1.s2 > 2)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "Total line number = 10\n"), + + "+--------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 5 && us.d1.s2 > 2)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 5 && us.d1.s2 > 2)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 5 && us.d1.s2 > 2)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "explain SELECT * FROM us WHERE d1.s1 < 6 and d2.s1 > 3;", "ResultSets:\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 6 && us.d2.s1 > 3)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 6 && us.d2.s1 > 3)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 6)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Select | Select| Filter: (us.d2.s1 > 3)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "Total line number = 11\n"), + + "+--------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 6 && us.d2.s1 > 3)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 6 && us.d2.s1 > 3)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 6)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Select | Select| Filter: (us.d2.s1 > 3)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 12\n"), new Pair<>( "explain SELECT * FROM us WHERE d1.s1 < 6 or d2.s1 < 7;\n", "ResultSets:\n" - + "+----------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: ((us.d1.s1 < 6 || us.d2.s1 < 7))|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: ((us.d1.s1 < 6 || us.d2.s1 < 7))|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+----------------------+-------------+-----------------------------------------+\n" - + "Total line number = 9\n"), + + "+------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: ((us.d1.s1 < 6 || us.d2.s1 < 7))|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: ((us.d1.s1 < 6 || us.d2.s1 < 7))|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 10\n"), new Pair<>( "explain SELECT * FROM us WHERE d2.c like \"[a|s]\";", "ResultSets:\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: (us.d2.c like \"[a|s]\")|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d2.c like \"[a|s]\")|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Select | Select| Filter: (us.d2.c like \"[a|s]\")|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "Total line number = 10\n"), + + "+--------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: (us.d2.c like \"[a|s]\")|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d2.c like \"[a|s]\")|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Select | Select| Filter: (us.d2.c like \"[a|s]\")|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "explain SELECT * FROM us WHERE key < 4;\n", "ResultSets:\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (key < 4)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Select | Select| Filter: (key < 4)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Select | Select| Filter: (key < 4)|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "Total line number = 10\n"), + + "+----------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (key < 4)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Select | Select| Filter: (key < 4)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Select | Select| Filter: (key < 4)|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+----------------------+----------------+-----------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "explain SELECT * FROM us WHERE key < 5 and key > 1;\n", "ResultSets:\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (key < 5 && key > 1)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Select | Select| Filter: (key < 5 && key > 1)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Select | Select| Filter: (key < 5 && key > 1)|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "Total line number = 10\n"), + + "+----------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (key < 5 && key > 1)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Select | Select| Filter: (key < 5 && key > 1)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Select | Select| Filter: (key < 5 && key > 1)|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+----------------------+----------------+-----------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "explain SELECT * FROM us WHERE key < 5 or key > 1003;", "ResultSets:\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: ((key < 5 || key > 1003))|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Select | Select| Filter: ((key < 5 || key > 1003))|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Select | Select| Filter: ((key < 5 || key > 1003))|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+--------------------+-------------+-----------------------------------------+\n" - + "Total line number = 10\n"), + + "+----------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: ((key < 5 || key > 1003))|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Select | Select| Filter: ((key < 5 || key > 1003))|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Select | Select| Filter: ((key < 5 || key > 1003))|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+----------------------+----------------+-----------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "explain SELECT * FROM us WHERE d1.s1 < d1.s2;\n", "ResultSets:\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < us.d1.s2)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < us.d1.s2)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < us.d1.s2)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+------------------------+-------------+-----------------------------------------+\n" - + "Total line number = 10\n"), + + "+--------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < us.d1.s2)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < us.d1.s2)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < us.d1.s2)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+--------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "explain SELECT * FROM us WHERE d1.s1 < d2.s1;\n", "ResultSets:\n" - + "+----------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < us.d2.s1)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < us.d2.s1)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+----------------------+-------------+-----------------------------------------+\n" - + "Total line number = 9\n"), + + "+------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < us.d2.s1)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < us.d2.s1)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 10\n"), new Pair<>( "explain SELECT * FROM (SELECT * FROM us WHERE us.d1.s1 < 5) WHERE us.d1.s2 < 5;\n", "ResultSets:\n" - + "+----------------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--Project | Project| Patterns: *|\n" - + "| +--Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: (us.d1.s2 < 5 && us.d1.s1 < 5)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s2 < 5 && us.d1.s1 < 5)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s2 < 5 && us.d1.s1 < 5)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+----------------------------+-------------+-----------------------------------------+\n" - + "Total line number = 12\n"), + + "+------------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--Project | Project| Patterns: *|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: (us.d1.s2 < 5 && us.d1.s1 < 5)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s2 < 5 && us.d1.s1 < 5)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s2 < 5 && us.d1.s1 < 5)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+------------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 13\n"), new Pair<>( "explain SELECT * FROM (SELECT * FROM us WHERE us.d1.s1 < 5) WHERE us.d2.s1 < 10;", "ResultSets:\n" - + "+----------------------------+-------------+-----------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------------+-------------+-----------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--Project | Project| Patterns: *|\n" - + "| +--Reorder | Reorder| Order: us.*|\n" - + "| +--Project | Project| Patterns: us.*|\n" - + "| +--Select | Select| Filter: (us.d2.s1 < 10 && us.d1.s1 < 5)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d2.s1 < 10 && us.d1.s1 < 5)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 5)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" - + "| +--Select | Select| Filter: (us.d2.s1 < 10)|\n" - + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" - + "+----------------------------+-------------+-----------------------------------------+\n" - + "Total line number = 13\n"), + + "+------------------------------+----------------+-----------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------------+----------------+-----------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--Project | Project| Patterns: *|\n" + + "| +--Reorder | Reorder| Order: us.*|\n" + + "| +--Project | Project| Patterns: us.*|\n" + + "| +--Select | Select| Filter: (us.d2.s1 < 10 && us.d1.s1 < 5)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d2.s1 < 10 && us.d1.s1 < 5)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 5)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000000|\n" + + "| +--Select | Select| Filter: (us.d2.s1 < 10)|\n" + + "| +--Project| Project|Patterns: us.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.*, Target DU: unit0000000002|\n" + + "+------------------------------+----------------+-----------------------------------------+\n" + + "Total line number = 14\n"), new Pair<>( "explain SELECT * FROM us.d1 LEFT OUTER JOIN us.d2 ON us.d1.s1 = us.d2.s1 AND us.d1.s1 < 10 AND us.d2.s1 < 10 WHERE us.d1.s2 > 10;", "ResultSets:\n" - + "+--------------------------+-------------+----------------------------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------------+-------------+----------------------------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--Project | Project| Patterns: *|\n" - + "| +--OuterJoin | OuterJoin|PrefixA: us.d1, PrefixB: us.d2, OuterJoinType: LEFT, IsNatural: false, Filter: (us.d1.s1 == us.d2.s1 && us.d1.s1 < 10)|\n" - + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "| +--Select | Select| Filter: (us.d2.s1 < 10)|\n" - + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000001|\n" - + "+--------------------------+-------------+----------------------------------------------------------------------------------------------------------------------+\n" - + "Total line number = 13\n"), + + "+----------------------------+----------------+----------------------------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------------+----------------+----------------------------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--Project | Project| Patterns: *|\n" + + "| +--OuterJoin | OuterJoin|PrefixA: us.d1, PrefixB: us.d2, OuterJoinType: LEFT, IsNatural: false, Filter: (us.d1.s1 == us.d2.s1 && us.d1.s1 < 10)|\n" + + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "| +--Select | Select| Filter: (us.d2.s1 < 10)|\n" + + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000001|\n" + + "+----------------------------+----------------+----------------------------------------------------------------------------------------------------------------------+\n" + + "Total line number = 14\n"), new Pair<>( "explain SELECT * FROM us.d1, us.d2, us.d3 WHERE us.d1.s1 = us.d2.s1 AND us.d2.s1 = us.d3.s1 AND us.d2.s1 < 10;", "ResultSets:\n" - + "+----------------------+-------------+--------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------+-------------+--------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--Project | Project| Patterns: *|\n" - + "| +--InnerJoin | InnerJoin|PrefixA: us.d2, PrefixB: us.d3, IsNatural: false, Filter: (us.d2.s1 == us.d3.s1)|\n" - + "| +--InnerJoin | InnerJoin|PrefixA: us.d1, PrefixB: us.d2, IsNatural: false, Filter: (us.d1.s1 == us.d2.s1)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "| +--Select | Select| Filter: (us.d2.s1 < 10)|\n" - + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000001|\n" - + "| +--Project | Project| Patterns: us.d3.*, Target DU: unit0000000001|\n" - + "+----------------------+-------------+--------------------------------------------------------------------------------+\n" - + "Total line number = 12\n"), + + "+------------------------+----------------+--------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------+----------------+--------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--Project | Project| Patterns: *|\n" + + "| +--InnerJoin | InnerJoin|PrefixA: us.d2, PrefixB: us.d3, IsNatural: false, Filter: (us.d2.s1 == us.d3.s1)|\n" + + "| +--InnerJoin | InnerJoin|PrefixA: us.d1, PrefixB: us.d2, IsNatural: false, Filter: (us.d1.s1 == us.d2.s1)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "| +--Select | Select| Filter: (us.d2.s1 < 10)|\n" + + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000001|\n" + + "| +--Project | Project| Patterns: us.d3.*, Target DU: unit0000000001|\n" + + "+------------------------+----------------+--------------------------------------------------------------------------------+\n" + + "Total line number = 13\n"), new Pair<>( "explain SELECT * FROM (SELECT max(s2), min(s3), s1 FROM us.d1 GROUP BY s1) WHERE us.d1.s1 < 10 AND max(us.d1.s2) > 10;", "ResultSets:\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--Project | Project| Patterns: *|\n" - + "| +--Reorder | Reorder| Order: max(us.d1.s2),min(us.d1.s3),us.d1.s1|\n" - + "| +--Select | Select| Filter: (max(us.d1.s2) > 10)|\n" - + "| +--GroupBy | GroupBy|GroupByCols: us.d1.s1, FuncList(Name, FuncType): (max, System),(min, System), MappingType: SetMapping isDistinct: false|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 10)|\n" - + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2,us.d1.s3, Target DU: unit0000000000|\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------------------------------------------------+\n" - + "Total line number = 7\n"), + + "+------------------------+----------------+-----------------------------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------+----------------+-----------------------------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--Project | Project| Patterns: *|\n" + + "| +--Reorder | Reorder| Order: max(us.d1.s2),min(us.d1.s3),us.d1.s1|\n" + + "| +--Select | Select| Filter: (max(us.d1.s2) > 10)|\n" + + "| +--GroupBy | GroupBy|GroupByCols: us.d1.s1, FuncList(Name, FuncType): (max, System),(min, System), MappingType: SetMapping isDistinct: false|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 10)|\n" + + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2,us.d1.s3, Target DU: unit0000000000|\n" + + "+------------------------+----------------+-----------------------------------------------------------------------------------------------------------------------+\n" + + "Total line number = 8\n"), new Pair<>( "explain SELECT * FROM (SELECT avg(s2), count(s3) FROM us.d1) WHERE avg(us.d1.s2) < 10;", "ResultSets:\n" - + "+-----------------------+-------------+----------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+-----------------------+-------------+----------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--Project | Project| Patterns: *|\n" - + "| +--Reorder | Reorder| Order: avg(us.d1.s2),count(us.d1.s3)|\n" - + "| +--Select | Select| Filter: avg(us.d1.s2) < 10|\n" - + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (avg, System), (count, System), MappingType: SetMapping, isDistinct: false|\n" - + "| +--Project | Project| Patterns: us.d1.s2,us.d1.s3, Target DU: unit0000000000|\n" - + "+-----------------------+-------------+----------------------------------------------------------------------------------------------------+\n" - + "Total line number = 6\n"), + + "+-------------------------+----------------+----------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+-------------------------+----------------+----------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--Project | Project| Patterns: *|\n" + + "| +--Reorder | Reorder| Order: avg(us.d1.s2),count(us.d1.s3)|\n" + + "| +--Select | Select| Filter: avg(us.d1.s2) < 10|\n" + + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (avg, System), (count, System), MappingType: SetMapping, isDistinct: false|\n" + + "| +--Project | Project| Patterns: us.d1.s2,us.d1.s3, Target DU: unit0000000000|\n" + + "+-------------------------+----------------+----------------------------------------------------------------------------------------------------+\n" + + "Total line number = 7\n"), new Pair<>( "explain SELECT s1 FROM us.d1 WHERE s1 < 10 && EXISTS (SELECT s1 FROM us.d2 WHERE us.d1.s1 > us.d2.s1);", "ResultSets:\n" - + "+--------------------------+-------------+-------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------------+-------------+-------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: us.d1.s1|\n" - + "| +--Project | Project| Patterns: us.d1.s1|\n" - + "| +--Select | Select| Filter: (&mark11 == true)|\n" - + "| +--MarkJoin | MarkJoin|Filter: True, MarkColumn: &mark11, IsAntiJoin: false, ExtraJoinPrefix: us.d1.s1|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 10)|\n" - + "| +--Project | Project| Patterns: us.d1.s1, Target DU: unit0000000000|\n" - + "| +--Project | Project| Patterns: us.d1.s1,us.d2.s1|\n" - + "| +--InnerJoin | InnerJoin| PrefixA: null, PrefixB: null, IsNatural: false, Filter: (us.d1.s1 > us.d2.s1)|\n" - + "| +--Project | Project| Patterns: us.d1.s1|\n" - + "| +--Select | Select| Filter: (us.d1.s1 < 10)|\n" - + "| +--Project| Project| Patterns: us.d1.s1, Target DU: unit0000000000|\n" - + "| +--Project | Project| Patterns: us.d2.s1, Target DU: unit0000000001|\n" - + "+--------------------------+-------------+-------------------------------------------------------------------------------+\n" - + "Total line number = 12\n"), + + "+----------------------------+----------------+-------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------------+----------------+-------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.d1.s1|\n" + + "| +--Project | Project| Patterns: us.d1.s1|\n" + + "| +--Select | Select| Filter: (&mark11 == true)|\n" + + "| +--MarkJoin | MarkJoin|Filter: True, MarkColumn: &mark11, IsAntiJoin: false, ExtraJoinPrefix: us.d1.s1|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 10)|\n" + + "| +--Project | Project| Patterns: us.d1.s1, Target DU: unit0000000000|\n" + + "| +--Project | Project| Patterns: us.d1.s1,us.d2.s1|\n" + + "| +--InnerJoin | InnerJoin| PrefixA: null, PrefixB: null, IsNatural: false, Filter: (us.d1.s1 > us.d2.s1)|\n" + + "| +--Project | Project| Patterns: us.d1.s1|\n" + + "| +--Select | Select| Filter: (us.d1.s1 < 10)|\n" + + "| +--Project| Project| Patterns: us.d1.s1, Target DU: unit0000000000|\n" + + "| +--Project | Project| Patterns: us.d2.s1, Target DU: unit0000000001|\n" + + "+----------------------------+----------------+-------------------------------------------------------------------------------+\n" + + "Total line number = 13\n"), new Pair<>( "explain SELECT * FROM us.d1 LEFT OUTER JOIN us.d2 ON us.d1.s1 = us.d2.s1 WHERE us.d2.s2 < 10;", "ResultSets:\n" - + "+--------------------+-------------+------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--Project | Project| Patterns: *|\n" - + "| +--InnerJoin | InnerJoin|PrefixA: us.d1, PrefixB: us.d2, IsNatural: false, Filter: us.d1.s1 == us.d2.s1|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "| +--Select | Select| Filter: (us.d2.s2 < 10)|\n" - + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000001|\n" - + "+--------------------+-------------+------------------------------------------------------------------------------+\n" - + "Total line number = 10\n"), + + "+----------------------+----------------+------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--Project | Project| Patterns: *|\n" + + "| +--InnerJoin | InnerJoin|PrefixA: us.d1, PrefixB: us.d2, IsNatural: false, Filter: us.d1.s1 == us.d2.s1|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "| +--Select | Select| Filter: (us.d2.s2 < 10)|\n" + + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000001|\n" + + "+----------------------+----------------+------------------------------------------------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "explain SELECT * FROM us.d1 FULL OUTER JOIN us.d2 ON us.d1.s1 = us.d2.s1 WHERE us.d1.s2 > 10;", "ResultSets:\n" - + "+--------------------------+-------------+---------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------------+-------------+---------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--Project | Project| Patterns: *|\n" - + "| +--OuterJoin | OuterJoin|PrefixA: us.d1, PrefixB: us.d2, OuterJoinType: LEFT, IsNatural: false, Filter: us.d1.s1 == us.d2.s1|\n" - + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000001|\n" - + "+--------------------------+-------------+---------------------------------------------------------------------------------------------------+\n" - + "Total line number = 12\n")); + + "+----------------------------+----------------+---------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------------+----------------+---------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--Project | Project| Patterns: *|\n" + + "| +--OuterJoin | OuterJoin|PrefixA: us.d1, PrefixB: us.d2, OuterJoinType: LEFT, IsNatural: false, Filter: us.d1.s1 == us.d2.s1|\n" + + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Select | Select| Filter: (us.d1.s2 > 10)|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000001|\n" + + "+----------------------------+----------------+---------------------------------------------------------------------------------------------------+\n" + + "Total line number = 13\n")); for (Pair pair : statementsAndExpectRes) { String statement = pair.k; @@ -7488,46 +7510,48 @@ public void testFilterFragmentOptimizer() { new Pair<>( "EXPLAIN SELECT s1 FROM us.d1 JOIN us.d2 WHERE key < 100;", "ResultSets:\n" - + "+------------------------+-------------+------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------------+-------------+------------------------------------------------+\n" - + "|Reorder | Reorder| Order: s1|\n" - + "| +--Project | Project| Patterns: s1|\n" - + "| +--Select | Select| Filter: key < 100|\n" - + "| +--InnerJoin | InnerJoin|PrefixA: us.d1, PrefixB: us.d2, IsNatural: false|\n" - + "| +--PathUnion | PathUnion| |\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000004|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000003|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000005|\n" - + "| +--PathUnion | PathUnion| |\n" - + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000002|\n" - + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000003|\n" - + "+------------------------+-------------+------------------------------------------------+\n" - + "Total line number = 18\n"), + + "+--------------------------+----------------+------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------------+----------------+------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: s1|\n" + + "| +--Project | Project| Patterns: s1|\n" + + "| +--Select | Select| Filter: key < 100|\n" + + "| +--InnerJoin | InnerJoin|PrefixA: us.d1, PrefixB: us.d2, IsNatural: false|\n" + + "| +--PathUnion | PathUnion| |\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000004|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000003|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000005|\n" + + "| +--PathUnion | PathUnion| |\n" + + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000002|\n" + + "| +--Project | Project| Patterns: us.d2.*, Target DU: unit0000000003|\n" + + "+--------------------------+----------------+------------------------------------------------+\n" + + "Total line number = 19\n"), new Pair<>( "EXPLAIN SELECT avg(bb) FROM (SELECT a as aa, b as bb FROM us.d2) WHERE key > 2 GROUP BY aa;", "ResultSets:\n" - + "+------------------------+-------------+---------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------------+-------------+---------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: avg(bb)|\n" - + "| +--GroupBy | GroupBy|GroupByCols: aa, FuncList(Name, FuncType): (avg, System), MappingType: SetMapping isDistinct: false|\n" - + "| +--Select | Select| Filter: key > 2|\n" - + "| +--Rename | Rename| AliasList: (us.d2.a, aa),(us.d2.b, bb)|\n" - + "| +--Reorder | Reorder| Order: us.d2.a,us.d2.b|\n" - + "| +--Project | Project| Patterns: us.d2.a,us.d2.b|\n" - + "| +--PathUnion| PathUnion| |\n" - + "| +--Project| Project| Patterns: us.d2.a,us.d2.b, Target DU: unit0000000002|\n" - + "| +--Project| Project| Patterns: us.d2.a,us.d2.b, Target DU: unit0000000003|\n" - + "+------------------------+-------------+---------------------------------------------------------------------------------------------------+\n" - + "Total line number = 9\n")); + + "+--------------------------+----------------+---------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------------+----------------+---------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: avg(bb)|\n" + + "| +--GroupBy | GroupBy|GroupByCols: aa, FuncList(Name, FuncType): (avg, System), MappingType: SetMapping isDistinct: false|\n" + + "| +--Select | Select| Filter: key > 2|\n" + + "| +--Rename | Rename| AliasList: (us.d2.a, aa),(us.d2.b, bb)|\n" + + "| +--Reorder | Reorder| Order: us.d2.a,us.d2.b|\n" + + "| +--Project | Project| Patterns: us.d2.a,us.d2.b|\n" + + "| +--PathUnion| PathUnion| |\n" + + "| +--Project| Project| Patterns: us.d2.a,us.d2.b, Target DU: unit0000000002|\n" + + "| +--Project| Project| Patterns: us.d2.a,us.d2.b, Target DU: unit0000000003|\n" + + "+--------------------------+----------------+---------------------------------------------------------------------------------------------------+\n" + + "Total line number = 10\n")); // 这里的测例是filter_fragment能处理的节点,开关会导致变化 List> statementsAndExpectResAfterOptimize = @@ -7540,47 +7564,50 @@ public void testFilterFragmentOptimizer() { + ")\n" + "OVER WINDOW (size 20 IN [1000, 1100));", "ResultSets:\n" - + "+------------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: count(*)|\n" - + "| +--Downsample | Downsample| Precision: 20, SlideDistance: 20, TimeRange: [1000, 1100), FuncList(Name, FunctionType): (count, System), MappingType: SetMapping|\n" - + "| +--Select | Select| Filter: (key >= 1000 && key < 1100)|\n" - + "| +--Rename | Rename| AliasList: (avg(us.d1.s1), avg_s1),(sum(us.d1.s2), sum_s2)|\n" - + "| +--Reorder | Reorder| Order: avg(us.d1.s1),sum(us.d1.s2)|\n" - + "| +--Downsample | Downsample|Precision: 10, SlideDistance: 10, TimeRange: [1000, 1100), FuncList(Name, FunctionType): (avg, System), (sum, System), MappingType: SetMapping|\n" - + "| +--Select | Select| Filter: (key >= 1000 && key < 1100)|\n" - + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" - + "+------------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" - + "Total line number = 8\n"), + + "+--------------------------+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------------+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: count(*)|\n" + + "| +--Downsample | Downsample| Precision: 20, SlideDistance: 20, TimeRange: [1000, 1100), FuncList(Name, FunctionType): (count, System), MappingType: SetMapping|\n" + + "| +--Select | Select| Filter: (key >= 1000 && key < 1100)|\n" + + "| +--Rename | Rename| AliasList: (avg(us.d1.s1), avg_s1),(sum(us.d1.s2), sum_s2)|\n" + + "| +--Reorder | Reorder| Order: avg(us.d1.s1),sum(us.d1.s2)|\n" + + "| +--Downsample | Downsample|Precision: 10, SlideDistance: 10, TimeRange: [1000, 1100), FuncList(Name, FunctionType): (avg, System), (sum, System), MappingType: SetMapping|\n" + + "| +--Select | Select| Filter: (key >= 1000 && key < 1100)|\n" + + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" + + "+--------------------------+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" + + "Total line number = 9\n"), new Pair<>( "EXPLAIN SELECT d1.* FROM us where key < 10;", "ResultSets:\n" - + "+--------------------+-------------+--------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+--------------------------------------------+\n" - + "|Reorder | Reorder| Order: us.d1.*|\n" - + "| +--Project | Project| Patterns: us.d1.*|\n" - + "| +--Select | Select| Filter: key < 10|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "| +--Project | Project|Patterns: us.d1.*, Target DU: unit0000000004|\n" - + "+--------------------+-------------+--------------------------------------------+\n" - + "Total line number = 8\n"), + + "+----------------------+----------------+--------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+--------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.d1.*|\n" + + "| +--Project | Project| Patterns: us.d1.*|\n" + + "| +--Select | Select| Filter: key < 10|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "| +--Project | Project|Patterns: us.d1.*, Target DU: unit0000000004|\n" + + "+----------------------+----------------+--------------------------------------------+\n" + + "Total line number = 9\n"), new Pair<>( "EXPLAIN SELECT d2.c FROM us where key < 10;", "ResultSets:\n" - + "+----------------+-------------+--------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------+-------------+--------------------------------------------+\n" - + "|Reorder | Reorder| Order: us.d2.c|\n" - + "| +--Project | Project| Patterns: us.d2.c|\n" - + "| +--Select | Select| Filter: key < 10|\n" - + "| +--Project| Project|Patterns: us.d2.c, Target DU: unit0000000002|\n" - + "+----------------+-------------+--------------------------------------------+\n" - + "Total line number = 4\n")); + + "+------------------+----------------+--------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------+----------------+--------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.d2.c|\n" + + "| +--Project | Project| Patterns: us.d2.c|\n" + + "| +--Select | Select| Filter: key < 10|\n" + + "| +--Project| Project|Patterns: us.d2.c, Target DU: unit0000000002|\n" + + "+------------------+----------------+--------------------------------------------+\n" + + "Total line number = 5\n")); executor.concurrentExecuteAndCompare(statementsAndExpectResAfterOptimize); executor.concurrentExecuteAndCompare(statementsAndExpectResNoChange); @@ -7599,55 +7626,58 @@ public void testFilterFragmentOptimizer() { + ")\n" + "OVER WINDOW (size 20 IN [1000, 1100));", "ResultSets:\n" - + "+--------------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: count(*)|\n" - + "| +--Downsample | Downsample| Precision: 20, SlideDistance: 20, TimeRange: [1000, 1100), FuncList(Name, FunctionType): (count, System), MappingType: SetMapping|\n" - + "| +--Select | Select| Filter: (key >= 1000 && key < 1100)|\n" - + "| +--Rename | Rename| AliasList: (avg(us.d1.s1), avg_s1),(sum(us.d1.s2), sum_s2)|\n" - + "| +--Reorder | Reorder| Order: avg(us.d1.s1),sum(us.d1.s2)|\n" - + "| +--Downsample | Downsample|Precision: 10, SlideDistance: 10, TimeRange: [1000, 1100), FuncList(Name, FunctionType): (avg, System), (sum, System), MappingType: SetMapping|\n" - + "| +--Select | Select| Filter: (key >= 1000 && key < 1100)|\n" - + "| +--PathUnion| PathUnion| |\n" - + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" - + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000001|\n" - + "+--------------------------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" - + "Total line number = 10\n"), + + "+----------------------------+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------------+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: count(*)|\n" + + "| +--Downsample | Downsample| Precision: 20, SlideDistance: 20, TimeRange: [1000, 1100), FuncList(Name, FunctionType): (count, System), MappingType: SetMapping|\n" + + "| +--Select | Select| Filter: (key >= 1000 && key < 1100)|\n" + + "| +--Rename | Rename| AliasList: (avg(us.d1.s1), avg_s1),(sum(us.d1.s2), sum_s2)|\n" + + "| +--Reorder | Reorder| Order: avg(us.d1.s1),sum(us.d1.s2)|\n" + + "| +--Downsample | Downsample|Precision: 10, SlideDistance: 10, TimeRange: [1000, 1100), FuncList(Name, FunctionType): (avg, System), (sum, System), MappingType: SetMapping|\n" + + "| +--Select | Select| Filter: (key >= 1000 && key < 1100)|\n" + + "| +--PathUnion| PathUnion| |\n" + + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" + + "| +--Project| Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000001|\n" + + "+----------------------------+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+\n" + + "Total line number = 11\n"), new Pair<>( "EXPLAIN SELECT d1.* FROM us;", "ResultSets:\n" - + "+--------------------+-------------+--------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+--------------------------------------------+\n" - + "|Reorder | Reorder| Order: us.d1.*|\n" - + "| +--Project | Project| Patterns: us.d1.*|\n" - + "| +--PathUnion | PathUnion| |\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "| +--Project | Project|Patterns: us.d1.*, Target DU: unit0000000004|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000001|\n" - + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000003|\n" - + "| +--Project | Project|Patterns: us.d1.*, Target DU: unit0000000005|\n" - + "+--------------------+-------------+--------------------------------------------+\n" - + "Total line number = 13\n"), + + "+----------------------+----------------+--------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+--------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.d1.*|\n" + + "| +--Project | Project| Patterns: us.d1.*|\n" + + "| +--PathUnion | PathUnion| |\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "| +--Project | Project|Patterns: us.d1.*, Target DU: unit0000000004|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000001|\n" + + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000003|\n" + + "| +--Project | Project|Patterns: us.d1.*, Target DU: unit0000000005|\n" + + "+----------------------+----------------+--------------------------------------------+\n" + + "Total line number = 14\n"), new Pair<>( "EXPLAIN SELECT d2.c FROM us;", "ResultSets:\n" - + "+----------------+-------------+--------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------+-------------+--------------------------------------------+\n" - + "|Reorder | Reorder| Order: us.d2.c|\n" - + "| +--Project | Project| Patterns: us.d2.c|\n" - + "| +--PathUnion| PathUnion| |\n" - + "| +--Project| Project|Patterns: us.d2.c, Target DU: unit0000000002|\n" - + "| +--Project| Project|Patterns: us.d2.c, Target DU: unit0000000003|\n" - + "+----------------+-------------+--------------------------------------------+\n" - + "Total line number = 5\n")); + + "+------------------+----------------+--------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------+----------------+--------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.d2.c|\n" + + "| +--Project | Project| Patterns: us.d2.c|\n" + + "| +--PathUnion| PathUnion| |\n" + + "| +--Project| Project|Patterns: us.d2.c, Target DU: unit0000000002|\n" + + "| +--Project| Project|Patterns: us.d2.c, Target DU: unit0000000003|\n" + + "+------------------+----------------+--------------------------------------------+\n" + + "Total line number = 6\n")); executor.concurrentExecuteAndCompare(statementsAndExpectResBeforeOptimize); executor.concurrentExecuteAndCompare(statementsAndExpectResNoChange); @@ -7708,14 +7738,15 @@ public void testSetMappingTransform() { query = "explain SELECT count(s1), avg(s2) from us.d1;"; expect = "ResultSets:\n" - + "+-----------------+-------------+----------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+-----------------+-------------+----------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: count(us.d1.s1),avg(us.d1.s2)|\n" - + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (count, System), (avg, System), MappingType: SetMapping, isDistinct: false|\n" - + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" - + "+-----------------+-------------+----------------------------------------------------------------------------------------------------+\n" - + "Total line number = 3\n"; + + "+-------------------+----------------+----------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+-------------------+----------------+----------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: count(us.d1.s1),avg(us.d1.s2)|\n" + + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (count, System), (avg, System), MappingType: SetMapping, isDistinct: false|\n" + + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2, Target DU: unit0000000000|\n" + + "+-------------------+----------------+----------------------------------------------------------------------------------------------------+\n" + + "Total line number = 4\n"; executor.executeAndCompare(query, expect); } } @@ -7751,16 +7782,17 @@ public void testMappingTransform() { query = "explain SELECT first(s1), last(s2), first(s3), last(s4) from us.d1;"; expect = "ResultSets:\n" - + "+---------------------+----------------+----------------------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree| Operator Type| Operator Info|\n" - + "+---------------------+----------------+----------------------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: path,value|\n" - + "| +--MappingTransform|MappingTransform|FuncList(Name, FuncType): (first, System), (last, System), (first, System), (last, System), MappingType: Mapping|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2,us.d1.s3, Target DU: unit0000000000|\n" - + "| +--Project | Project| Patterns: us.d1.s4, Target DU: unit0000000001|\n" - + "+---------------------+----------------+----------------------------------------------------------------------------------------------------------------+\n" - + "Total line number = 5\n"; + + "+-----------------------+----------------+----------------------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+-----------------------+----------------+----------------------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: path,value|\n" + + "| +--MappingTransform|MappingTransform|FuncList(Name, FuncType): (first, System), (last, System), (first, System), (last, System), MappingType: Mapping|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project | Project| Patterns: us.d1.s1,us.d1.s2,us.d1.s3, Target DU: unit0000000000|\n" + + "| +--Project | Project| Patterns: us.d1.s4, Target DU: unit0000000001|\n" + + "+-----------------------+----------------+----------------------------------------------------------------------------------------------------------------+\n" + + "Total line number = 6\n"; executor.executeAndCompare(query, expect); } } @@ -7827,108 +7859,114 @@ public void testColumnPruningAndFragmentPruning() { String expect1 = "ResultSets:\n" - + "+----------------------+-------------+--------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------+-------------+--------------------------------------------+\n" - + "|Reorder | Reorder| Order: us.d1.s1|\n" - + "| +--Project | Project| Patterns: us.d1.s1|\n" - + "| +--Reorder | Reorder| Order: us.d1.*|\n" - + "| +--Project | Project| Patterns: us.d1.*|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000001|\n" - + "| +--Project | Project|Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "+----------------------+-------------+--------------------------------------------+\n" - + "Total line number = 9\n"; + + "+------------------------+----------------+--------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------+----------------+--------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.d1.s1|\n" + + "| +--Project | Project| Patterns: us.d1.s1|\n" + + "| +--Reorder | Reorder| Order: us.d1.*|\n" + + "| +--Project | Project| Patterns: us.d1.*|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project| Project|Patterns: us.d1.*, Target DU: unit0000000001|\n" + + "| +--Project | Project|Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "+------------------------+----------------+--------------------------------------------+\n" + + "Total line number = 10\n"; executor.executeAndCompare(sql1, expect1); String expect2 = "ResultSets:\n" - + "+--------------------+-------------+-------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+-------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a|\n" - + "| +--Project | Project| Patterns: test.a.a|\n" - + "| +--InnerJoin | InnerJoin|PrefixA: test.a, PrefixB: us.d1, IsNatural: false, Filter: test.a.b == us.d1.s1|\n" - + "| +--Project | Project| Patterns: test.a.*, Target DU: unit0000000002|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Join | Join| JoinBy: key|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" - + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" - + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" - + "+--------------------+-------------+-------------------------------------------------------------------------------+\n" - + "Total line number = 9\n"; + + "+----------------------+----------------+-------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+-------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a|\n" + + "| +--Project | Project| Patterns: test.a.a|\n" + + "| +--InnerJoin | InnerJoin|PrefixA: test.a, PrefixB: us.d1, IsNatural: false, Filter: test.a.b == us.d1.s1|\n" + + "| +--Project | Project| Patterns: test.a.*, Target DU: unit0000000002|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Join | Join| JoinBy: key|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000000|\n" + + "| +--Project| Project| Patterns: us.d1.*, Target DU: unit0000000001|\n" + + "| +--Project | Project| Patterns: us.d1.*, Target DU: unit0000000002|\n" + + "+----------------------+----------------+-------------------------------------------------------------------------------+\n" + + "Total line number = 10\n"; executor.executeAndCompare(sql2, expect2); String expect3 = "ResultSets:\n" - + "+------------------+-------------+-------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------+-------------+-------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a,test.a.e,test.b.k|\n" - + "| +--Project | Project| Patterns: test.b.k,test.a.e,test.a.a|\n" - + "| +--Reorder | Reorder| Order: test.*|\n" - + "| +--Project | Project| Patterns: test.*|\n" - + "| +--Project| Project|Patterns: test.*, Target DU: unit0000000002|\n" - + "+------------------+-------------+-------------------------------------------+\n" - + "Total line number = 5\n"; + + "+--------------------+----------------+-------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------+----------------+-------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.e,test.b.k|\n" + + "| +--Project | Project| Patterns: test.b.k,test.a.e,test.a.a|\n" + + "| +--Reorder | Reorder| Order: test.*|\n" + + "| +--Project | Project| Patterns: test.*|\n" + + "| +--Project| Project|Patterns: test.*, Target DU: unit0000000002|\n" + + "+--------------------+----------------+-------------------------------------------+\n" + + "Total line number = 6\n"; executor.executeAndCompare(sql3, expect3); String expect4 = "ResultSets:\n" - + "+-----------------------+-------------+-----------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+-----------------------+-------------+-----------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a,avg(test.a.b)|\n" - + "| +--Project | Project| Patterns: avg(test.a.b),test.a.a|\n" - + "| +--SingleJoin | SingleJoin| Filter: True|\n" - + "| +--Reorder | Reorder| Order: test.a.*|\n" - + "| +--Project | Project| Patterns: test.a.*|\n" - + "| +--Project | Project| Patterns: test.a.*, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: avg(test.a.b)|\n" - + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (avg, System), MappingType: SetMapping, isDistinct: false|\n" - + "| +--Project | Project| Patterns: test.a.b, Target DU: unit0000000002|\n" - + "+-----------------------+-------------+-----------------------------------------------------------------------------------+\n" - + "Total line number = 9\n"; + + "+-------------------------+----------------+-----------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+-------------------------+----------------+-----------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a,avg(test.a.b)|\n" + + "| +--Project | Project| Patterns: avg(test.a.b),test.a.a|\n" + + "| +--SingleJoin | SingleJoin| Filter: True|\n" + + "| +--Reorder | Reorder| Order: test.a.*|\n" + + "| +--Project | Project| Patterns: test.a.*|\n" + + "| +--Project | Project| Patterns: test.a.*, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: avg(test.a.b)|\n" + + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (avg, System), MappingType: SetMapping, isDistinct: false|\n" + + "| +--Project | Project| Patterns: test.a.b, Target DU: unit0000000002|\n" + + "+-------------------------+----------------+-----------------------------------------------------------------------------------+\n" + + "Total line number = 10\n"; executor.executeAndCompare(sql4, expect4); String expect5 = "ResultSets:\n" - + "+--------------------+-------------+-----------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+-----------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a,test.a.b|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" - + "| +--Union | Union|LeftOrder: test.a.*, RightOrder: test.b.f,test.b.g,test.b.h,test.b.i,test.b.j, isDistinct: true|\n" - + "| +--Reorder | Reorder| Order: test.a.*|\n" - + "| +--Project | Project| Patterns: test.a.*|\n" - + "| +--Project| Project| Patterns: test.a.*, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: test.b.f,test.b.g,test.b.h,test.b.i,test.b.j|\n" - + "| +--Project | Project| Patterns: test.b.h,test.b.i,test.b.j,test.b.f,test.b.g|\n" - + "| +--Project| Project| Patterns: test.b.f,test.b.g,test.b.h,test.b.i,test.b.j, Target DU: unit0000000002|\n" - + "+--------------------+-------------+-----------------------------------------------------------------------------------------------+\n" - + "Total line number = 9\n"; + + "+----------------------+----------------+-----------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+-----------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.b|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" + + "| +--Union | Union|LeftOrder: test.a.*, RightOrder: test.b.f,test.b.g,test.b.h,test.b.i,test.b.j, isDistinct: true|\n" + + "| +--Reorder | Reorder| Order: test.a.*|\n" + + "| +--Project | Project| Patterns: test.a.*|\n" + + "| +--Project| Project| Patterns: test.a.*, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: test.b.f,test.b.g,test.b.h,test.b.i,test.b.j|\n" + + "| +--Project | Project| Patterns: test.b.h,test.b.i,test.b.j,test.b.f,test.b.g|\n" + + "| +--Project| Project| Patterns: test.b.f,test.b.g,test.b.h,test.b.i,test.b.j, Target DU: unit0000000002|\n" + + "+----------------------+----------------+-----------------------------------------------------------------------------------------------+\n" + + "Total line number = 10\n"; executor.executeAndCompare(sql5, expect5); String expect6 = "ResultSets:\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a,test.a.b|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" - + "| +--Intersect | Intersect|LeftOrder: test.a.a,test.a.b,test.a.c,test.a.d, RightOrder: test.b.f,test.b.g,test.b.h,test.b.i, isDistinct: true|\n" - + "| +--Reorder | Reorder| Order: test.a.a,test.a.b,test.a.c,test.a.d|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.b,test.a.c,test.a.d|\n" - + "| +--Select | Select| Filter: test.a.a < 50000|\n" - + "| +--Project| Project| Patterns: test.a.a,test.a.b,test.a.c,test.a.d, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: test.b.f,test.b.g,test.b.h,test.b.i|\n" - + "| +--Project | Project| Patterns: test.b.h,test.b.i,test.b.f,test.b.g|\n" - + "| +--Select | Select| Filter: test.b.f > 30000|\n" - + "| +--Project| Project| Patterns: test.b.f,test.b.g,test.b.h,test.b.i, Target DU: unit0000000002|\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------------------------------------------+\n" - + "Total line number = 11\n"; + + "+------------------------+----------------+-----------------------------------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------+----------------+-----------------------------------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.b|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" + + "| +--Intersect | Intersect|LeftOrder: test.a.a,test.a.b,test.a.c,test.a.d, RightOrder: test.b.f,test.b.g,test.b.h,test.b.i, isDistinct: true|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.b,test.a.c,test.a.d|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.b,test.a.c,test.a.d|\n" + + "| +--Select | Select| Filter: test.a.a < 50000|\n" + + "| +--Project| Project| Patterns: test.a.a,test.a.b,test.a.c,test.a.d, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: test.b.f,test.b.g,test.b.h,test.b.i|\n" + + "| +--Project | Project| Patterns: test.b.h,test.b.i,test.b.f,test.b.g|\n" + + "| +--Select | Select| Filter: test.b.f > 30000|\n" + + "| +--Project| Project| Patterns: test.b.f,test.b.g,test.b.h,test.b.i, Target DU: unit0000000002|\n" + + "+------------------------+----------------+-----------------------------------------------------------------------------------------------------------------+\n" + + "Total line number = 12\n"; executor.executeAndCompare(sql6, expect6); String openRule = "SET RULES ColumnPruningRule=ON;"; @@ -7936,100 +7974,106 @@ public void testColumnPruningAndFragmentPruning() { expect1 = "ResultSets:\n" - + "+------------------+-------------+---------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------+-------------+---------------------------------------------+\n" - + "|Reorder | Reorder| Order: us.d1.s1|\n" - + "| +--Project | Project| Patterns: us.d1.s1|\n" - + "| +--Reorder | Reorder| Order: us.d1.s1|\n" - + "| +--Project | Project| Patterns: us.d1.s1|\n" - + "| +--Project| Project|Patterns: us.d1.s1, Target DU: unit0000000000|\n" - + "+------------------+-------------+---------------------------------------------+\n" - + "Total line number = 5\n"; + + "+--------------------+----------------+---------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------+----------------+---------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: us.d1.s1|\n" + + "| +--Project | Project| Patterns: us.d1.s1|\n" + + "| +--Reorder | Reorder| Order: us.d1.s1|\n" + + "| +--Project | Project| Patterns: us.d1.s1|\n" + + "| +--Project| Project|Patterns: us.d1.s1, Target DU: unit0000000000|\n" + + "+--------------------+----------------+---------------------------------------------+\n" + + "Total line number = 6\n"; executor.executeAndCompare(sql1, expect1); expect2 = "ResultSets:\n" - + "+----------------+-------------+-------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------+-------------+-------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a|\n" - + "| +--Project | Project| Patterns: test.a.a|\n" - + "| +--InnerJoin| InnerJoin|PrefixA: test.a, PrefixB: us.d1, IsNatural: false, Filter: test.a.b == us.d1.s1|\n" - + "| +--Project| Project| Patterns: test.a.a,test.a.b, Target DU: unit0000000002|\n" - + "| +--Project| Project| Patterns: us.d1.s1, Target DU: unit0000000000|\n" - + "+----------------+-------------+-------------------------------------------------------------------------------+\n" - + "Total line number = 5\n"; + + "+------------------+----------------+-------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------+----------------+-------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a|\n" + + "| +--Project | Project| Patterns: test.a.a|\n" + + "| +--InnerJoin| InnerJoin|PrefixA: test.a, PrefixB: us.d1, IsNatural: false, Filter: test.a.b == us.d1.s1|\n" + + "| +--Project| Project| Patterns: test.a.a,test.a.b, Target DU: unit0000000002|\n" + + "| +--Project| Project| Patterns: us.d1.s1, Target DU: unit0000000000|\n" + + "+------------------+----------------+-------------------------------------------------------------------------------+\n" + + "Total line number = 6\n"; executor.executeAndCompare(sql2, expect2); expect3 = "ResultSets:\n" - + "+------------------+-------------+---------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+------------------+-------------+---------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a,test.a.e,test.b.k|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.e,test.b.k|\n" - + "| +--Reorder | Reorder| Order: test.a.a,test.a.e,test.b.k|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.e,test.b.k|\n" - + "| +--Project| Project|Patterns: test.a.a,test.a.e,test.b.k, Target DU: unit0000000002|\n" - + "+------------------+-------------+---------------------------------------------------------------+\n" - + "Total line number = 5\n"; + + "+--------------------+----------------+---------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+--------------------+----------------+---------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.e,test.b.k|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.e,test.b.k|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.e,test.b.k|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.e,test.b.k|\n" + + "| +--Project| Project|Patterns: test.a.a,test.a.e,test.b.k, Target DU: unit0000000002|\n" + + "+--------------------+----------------+---------------------------------------------------------------+\n" + + "Total line number = 6\n"; executor.executeAndCompare(sql3, expect3); expect4 = "ResultSets:\n" - + "+-----------------------+-------------+-----------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+-----------------------+-------------+-----------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a,avg(test.a.b)|\n" - + "| +--Project | Project| Patterns: avg(test.a.b),test.a.a|\n" - + "| +--SingleJoin | SingleJoin| Filter: True|\n" - + "| +--Reorder | Reorder| Order: test.a.a|\n" - + "| +--Project | Project| Patterns: test.a.a|\n" - + "| +--Project | Project| Patterns: test.a.a, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: avg(test.a.b)|\n" - + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (avg, System), MappingType: SetMapping, isDistinct: false|\n" - + "| +--Project | Project| Patterns: test.a.b, Target DU: unit0000000002|\n" - + "+-----------------------+-------------+-----------------------------------------------------------------------------------+\n" - + "Total line number = 9\n"; + + "+-------------------------+----------------+-----------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+-------------------------+----------------+-----------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a,avg(test.a.b)|\n" + + "| +--Project | Project| Patterns: avg(test.a.b),test.a.a|\n" + + "| +--SingleJoin | SingleJoin| Filter: True|\n" + + "| +--Reorder | Reorder| Order: test.a.a|\n" + + "| +--Project | Project| Patterns: test.a.a|\n" + + "| +--Project | Project| Patterns: test.a.a, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: avg(test.a.b)|\n" + + "| +--SetTransform| SetTransform|FuncList(Name, FuncType): (avg, System), MappingType: SetMapping, isDistinct: false|\n" + + "| +--Project | Project| Patterns: test.a.b, Target DU: unit0000000002|\n" + + "+-------------------------+----------------+-----------------------------------------------------------------------------------+\n" + + "Total line number = 10\n"; executor.executeAndCompare(sql4, expect4); expect5 = "ResultSets:\n" - + "+--------------------+-------------+-----------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+-----------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a,test.a.b|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" - + "| +--Union | Union|LeftOrder: test.a.a,test.a.b, RightOrder: test.b.f,test.b.g, isDistinct: true|\n" - + "| +--Reorder | Reorder| Order: test.a.a,test.a.b|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" - + "| +--Project| Project| Patterns: test.a.a,test.a.b, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: test.b.f,test.b.g|\n" - + "| +--Project | Project| Patterns: test.b.f,test.b.g|\n" - + "| +--Project| Project| Patterns: test.b.f,test.b.g, Target DU: unit0000000002|\n" - + "+--------------------+-------------+-----------------------------------------------------------------------------+\n" - + "Total line number = 9\n"; + + "+----------------------+----------------+-----------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+-----------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.b|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" + + "| +--Union | Union|LeftOrder: test.a.a,test.a.b, RightOrder: test.b.f,test.b.g, isDistinct: true|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.b|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" + + "| +--Project| Project| Patterns: test.a.a,test.a.b, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: test.b.f,test.b.g|\n" + + "| +--Project | Project| Patterns: test.b.f,test.b.g|\n" + + "| +--Project| Project| Patterns: test.b.f,test.b.g, Target DU: unit0000000002|\n" + + "+----------------------+----------------+-----------------------------------------------------------------------------+\n" + + "Total line number = 10\n"; executor.executeAndCompare(sql5, expect5); expect6 = "ResultSets:\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a.a,test.a.b|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" - + "| +--Intersect | Intersect|LeftOrder: test.a.a,test.a.b, RightOrder: test.b.f,test.b.g, isDistinct: true|\n" - + "| +--Reorder | Reorder| Order: test.a.a,test.a.b|\n" - + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" - + "| +--Select | Select| Filter: test.a.a < 50000|\n" - + "| +--Project| Project| Patterns: test.a.a,test.a.b, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: test.b.f,test.b.g|\n" - + "| +--Project | Project| Patterns: test.b.f,test.b.g|\n" - + "| +--Select | Select| Filter: test.b.f > 30000|\n" - + "| +--Project| Project| Patterns: test.b.f,test.b.g, Target DU: unit0000000002|\n" - + "+----------------------+-------------+-----------------------------------------------------------------------------+\n" - + "Total line number = 11\n"; + + "+------------------------+----------------+-----------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------+----------------+-----------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.b|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" + + "| +--Intersect | Intersect|LeftOrder: test.a.a,test.a.b, RightOrder: test.b.f,test.b.g, isDistinct: true|\n" + + "| +--Reorder | Reorder| Order: test.a.a,test.a.b|\n" + + "| +--Project | Project| Patterns: test.a.a,test.a.b|\n" + + "| +--Select | Select| Filter: test.a.a < 50000|\n" + + "| +--Project| Project| Patterns: test.a.a,test.a.b, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: test.b.f,test.b.g|\n" + + "| +--Project | Project| Patterns: test.b.f,test.b.g|\n" + + "| +--Select | Select| Filter: test.b.f > 30000|\n" + + "| +--Project| Project| Patterns: test.b.f,test.b.g, Target DU: unit0000000002|\n" + + "+------------------------+----------------+-----------------------------------------------------------------------------+\n" + + "Total line number = 12\n"; executor.executeAndCompare(sql6, expect6); } @@ -8462,57 +8506,59 @@ public void testJoinFactorizationRule() { executor.executeAndCompare(optimizing, result); String expect = "ResultSets:\n" - + "+----------------------------+-------------+------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------------+-------------+------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: t1.c1,t2.c2|\n" - + "| +--Project | Project| Patterns: t1.c1,t2.c2|\n" - + "| +--Select | Select| Filter: (t1.c1 == t2.c1 && t1.c1 > 1)|\n" - + "| +--CrossJoin | CrossJoin| PrefixA: t1, PrefixB: null|\n" - + "| +--Project | Project| Patterns: t1.*, Target DU: unit0000000002|\n" - + "| +--Union | Union|LeftOrder: t2.c2,t2.c1, RightOrder: t2.c2,t2.c1, isDistinct: false|\n" - + "| +--Reorder | Reorder| Order: t2.c1,t2.c2|\n" - + "| +--Project | Project| Patterns: t2.c1,t2.c2|\n" - + "| +--Select | Select| Filter: (t2.c2 == 2 && t3.c2 == 2)|\n" - + "| +--CrossJoin| CrossJoin| PrefixA: t2, PrefixB: t3|\n" - + "| +--Project| Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" - + "| +--Project| Project| Patterns: t3.c2, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: t2.c1,t2.c2|\n" - + "| +--Project | Project| Patterns: t2.c1,t2.c2|\n" - + "| +--Select | Select| Filter: (t2.c1 == t4.c1)|\n" - + "| +--CrossJoin| CrossJoin| PrefixA: t2, PrefixB: t4|\n" - + "| +--Project| Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" - + "| +--Project| Project| Patterns: t4.c1, Target DU: unit0000000002|\n" - + "+----------------------------+-------------+------------------------------------------------------------------+\n" - + "Total line number = 18\n"; + + "+------------------------------+----------------+------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------------+----------------+------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: t1.c1,t2.c2|\n" + + "| +--Project | Project| Patterns: t1.c1,t2.c2|\n" + + "| +--Select | Select| Filter: (t1.c1 == t2.c1 && t1.c1 > 1)|\n" + + "| +--CrossJoin | CrossJoin| PrefixA: t1, PrefixB: null|\n" + + "| +--Project | Project| Patterns: t1.c1, Target DU: unit0000000002|\n" + + "| +--Union | Union|LeftOrder: t2.c2,t2.c1, RightOrder: t2.c2,t2.c1, isDistinct: false|\n" + + "| +--Reorder | Reorder| Order: t2.c2,t2.c1|\n" + + "| +--Project | Project| Patterns: t2.c2,t2.c1|\n" + + "| +--Select | Select| Filter: (t2.c2 == 2 && t3.c2 == 2)|\n" + + "| +--CrossJoin| CrossJoin| PrefixA: t2, PrefixB: t3|\n" + + "| +--Project| Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" + + "| +--Project| Project| Patterns: t3.c2, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: t2.c2,t2.c1|\n" + + "| +--Project | Project| Patterns: t2.c2,t2.c1|\n" + + "| +--Select | Select| Filter: (t2.c1 == t4.c1)|\n" + + "| +--CrossJoin| CrossJoin| PrefixA: t2, PrefixB: t4|\n" + + "| +--Project| Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" + + "| +--Project| Project| Patterns: t4.c1, Target DU: unit0000000002|\n" + + "+------------------------------+----------------+------------------------------------------------------------------+\n" + + "Total line number = 19\n"; assertEquals(expect, executor.execute("EXPLAIN " + statement)); executor.execute(closeRule); assertTrue(TestUtils.compareTables(executor.execute(optimizing), result)); expect = "ResultSets:\n" - + "+----------------------+-------------+------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+----------------------+-------------+------------------------------------------------------------------+\n" - + "|Union | Union|LeftOrder: t1.c1,t2.c2, RightOrder: t1.c1,t2.c2, isDistinct: false|\n" - + "| +--Reorder | Reorder| Order: t1.c1,t2.c2|\n" - + "| +--Project | Project| Patterns: t2.c2,t1.c1|\n" - + "| +--Select | Select| Filter: (t1.c1 == t2.c1 && t1.c1 > 1 && t2.c2 == 2 && t3.c2 == 2)|\n" - + "| +--CrossJoin | CrossJoin| PrefixA: t2, PrefixB: t3|\n" - + "| +--CrossJoin| CrossJoin| PrefixA: t1, PrefixB: t2|\n" - + "| +--Project| Project| Patterns: t1.*, Target DU: unit0000000002|\n" - + "| +--Project| Project| Patterns: t2.*, Target DU: unit0000000002|\n" - + "| +--Project | Project| Patterns: t3.*, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: t1.c1,t2.c2|\n" - + "| +--Project | Project| Patterns: t2.c2,t1.c1|\n" - + "| +--Select | Select| Filter: (t1.c1 == t2.c1 && t1.c1 > 1 && t2.c1 == t4.c1)|\n" - + "| +--CrossJoin | CrossJoin| PrefixA: t2, PrefixB: t4|\n" - + "| +--CrossJoin| CrossJoin| PrefixA: t1, PrefixB: t2|\n" - + "| +--Project| Project| Patterns: t1.*, Target DU: unit0000000002|\n" - + "| +--Project| Project| Patterns: t2.*, Target DU: unit0000000002|\n" - + "| +--Project | Project| Patterns: t4.*, Target DU: unit0000000002|\n" - + "+----------------------+-------------+------------------------------------------------------------------+\n" - + "Total line number = 17\n"; + + "+------------------------+----------------+------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+------------------------+----------------+------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Union | Union|LeftOrder: t1.c1,t2.c2, RightOrder: t1.c1,t2.c2, isDistinct: false|\n" + + "| +--Reorder | Reorder| Order: t1.c1,t2.c2|\n" + + "| +--Project | Project| Patterns: t1.c1,t2.c2|\n" + + "| +--Select | Select| Filter: (t1.c1 == t2.c1 && t1.c1 > 1 && t2.c2 == 2 && t3.c2 == 2)|\n" + + "| +--CrossJoin | CrossJoin| PrefixA: t2, PrefixB: t3|\n" + + "| +--CrossJoin| CrossJoin| PrefixA: t1, PrefixB: t2|\n" + + "| +--Project| Project| Patterns: t1.c1, Target DU: unit0000000002|\n" + + "| +--Project| Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" + + "| +--Project | Project| Patterns: t3.c2, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: t1.c1,t2.c2|\n" + + "| +--Project | Project| Patterns: t1.c1,t2.c2|\n" + + "| +--Select | Select| Filter: (t1.c1 == t2.c1 && t1.c1 > 1 && t2.c1 == t4.c1)|\n" + + "| +--CrossJoin | CrossJoin| PrefixA: t2, PrefixB: t4|\n" + + "| +--CrossJoin| CrossJoin| PrefixA: t1, PrefixB: t2|\n" + + "| +--Project| Project| Patterns: t1.c1, Target DU: unit0000000002|\n" + + "| +--Project| Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" + + "| +--Project | Project| Patterns: t4.c1, Target DU: unit0000000002|\n" + + "+------------------------+----------------+------------------------------------------------------------------+\n" + + "Total line number = 18\n"; assertEquals(expect, executor.execute("EXPLAIN " + statement)); statement = @@ -8541,49 +8587,51 @@ public void testJoinFactorizationRule() { executor.executeAndCompare(optimizing, result); expect = "ResultSets:\n" - + "+--------------------------+-------------+------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------------+-------------+------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: t1.c2,t2.c2|\n" - + "| +--Project | Project| Patterns: t1.c2,t2.c2|\n" - + "| +--Select | Select| Filter: (t1.c1 == t2.c1)|\n" - + "| +--CrossJoin | CrossJoin| PrefixA: t2, PrefixB: null|\n" - + "| +--Project | Project| Patterns: t2.*, Target DU: unit0000000002|\n" - + "| +--Union | Union|LeftOrder: t1.c2,t1.c1, RightOrder: t1.c2,t1.c1, isDistinct: false|\n" - + "| +--Reorder | Reorder| Order: t1.c1,t1.c2|\n" - + "| +--Project | Project| Patterns: t1.c1,t1.c2|\n" - + "| +--Select | Select| Filter: (t1.c1 == 1)|\n" - + "| +--Project| Project| Patterns: t1.c1,t1.c2, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: t1.c1,t1.c2|\n" - + "| +--Project | Project| Patterns: t1.c1,t1.c2|\n" - + "| +--Select | Select| Filter: (t1.c1 == 2)|\n" - + "| +--Project| Project| Patterns: t1.c1,t1.c2, Target DU: unit0000000002|\n" - + "+--------------------------+-------------+------------------------------------------------------------------+\n" - + "Total line number = 14\n"; + + "+----------------------------+----------------+------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------------+----------------+------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: t1.c2,t2.c2|\n" + + "| +--Project | Project| Patterns: t1.c2,t2.c2|\n" + + "| +--Select | Select| Filter: (t1.c1 == t2.c1)|\n" + + "| +--CrossJoin | CrossJoin| PrefixA: t2, PrefixB: null|\n" + + "| +--Project | Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" + + "| +--Union | Union|LeftOrder: t1.c2,t1.c1, RightOrder: t1.c2,t1.c1, isDistinct: false|\n" + + "| +--Reorder | Reorder| Order: t1.c2,t1.c1|\n" + + "| +--Project | Project| Patterns: t1.c2,t1.c1|\n" + + "| +--Select | Select| Filter: (t1.c1 == 1)|\n" + + "| +--Project| Project| Patterns: t1.c1,t1.c2, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: t1.c2,t1.c1|\n" + + "| +--Project | Project| Patterns: t1.c2,t1.c1|\n" + + "| +--Select | Select| Filter: (t1.c1 == 2)|\n" + + "| +--Project| Project| Patterns: t1.c1,t1.c2, Target DU: unit0000000002|\n" + + "+----------------------------+----------------+------------------------------------------------------------------+\n" + + "Total line number = 15\n"; assertEquals(expect, executor.execute("EXPLAIN " + statement)); executor.execute(closeRule); assertTrue(TestUtils.compareTables(executor.execute(optimizing), result)); expect = "ResultSets:\n" - + "+--------------------+-------------+------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+--------------------+-------------+------------------------------------------------------------------+\n" - + "|Union | Union|LeftOrder: t1.c2,t2.c2, RightOrder: t1.c2,t2.c2, isDistinct: false|\n" - + "| +--Reorder | Reorder| Order: t1.c2,t2.c2|\n" - + "| +--Project | Project| Patterns: t2.c2,t1.c2|\n" - + "| +--Select | Select| Filter: (t2.c1 == 1 && t1.c1 == 1)|\n" - + "| +--CrossJoin| CrossJoin| PrefixA: t1, PrefixB: t2|\n" - + "| +--Project| Project| Patterns: t1.*, Target DU: unit0000000002|\n" - + "| +--Project| Project| Patterns: t2.*, Target DU: unit0000000002|\n" - + "| +--Reorder | Reorder| Order: t1.c2,t2.c2|\n" - + "| +--Project | Project| Patterns: t2.c2,t1.c2|\n" - + "| +--Select | Select| Filter: (t2.c1 == 2 && t1.c1 == 2)|\n" - + "| +--CrossJoin| CrossJoin| PrefixA: t1, PrefixB: t2|\n" - + "| +--Project| Project| Patterns: t1.*, Target DU: unit0000000002|\n" - + "| +--Project| Project| Patterns: t2.*, Target DU: unit0000000002|\n" - + "+--------------------+-------------+------------------------------------------------------------------+\n" - + "Total line number = 13\n"; + + "+----------------------+----------------+------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+----------------------+----------------+------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Union | Union|LeftOrder: t1.c2,t2.c2, RightOrder: t1.c2,t2.c2, isDistinct: false|\n" + + "| +--Reorder | Reorder| Order: t1.c2,t2.c2|\n" + + "| +--Project | Project| Patterns: t1.c2,t2.c2|\n" + + "| +--Select | Select| Filter: (t2.c1 == 1 && t1.c1 == 1)|\n" + + "| +--CrossJoin| CrossJoin| PrefixA: t1, PrefixB: t2|\n" + + "| +--Project| Project| Patterns: t1.c1,t1.c2, Target DU: unit0000000002|\n" + + "| +--Project| Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" + + "| +--Reorder | Reorder| Order: t1.c2,t2.c2|\n" + + "| +--Project | Project| Patterns: t1.c2,t2.c2|\n" + + "| +--Select | Select| Filter: (t2.c1 == 2 && t1.c1 == 2)|\n" + + "| +--CrossJoin| CrossJoin| PrefixA: t1, PrefixB: t2|\n" + + "| +--Project| Project| Patterns: t1.c1,t1.c2, Target DU: unit0000000002|\n" + + "| +--Project| Project| Patterns: t2.c1,t2.c2, Target DU: unit0000000002|\n" + + "+----------------------+----------------+------------------------------------------------------------------+\n" + + "Total line number = 14\n"; assertEquals(expect, executor.execute("EXPLAIN " + statement)); } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/tag/TagIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/tag/TagIT.java index 1e18619693..6103c13f00 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/tag/TagIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/tag/TagIT.java @@ -283,7 +283,7 @@ private String execute(String statement) { if (res.getParseErrorMsg() != null && !res.getParseErrorMsg().equals("")) { LOGGER.error( - "Statement: \"{}\" execute fail. Caused by: ", statement, res.getParseErrorMsg()); + "Statement: \"{}\" execute fail. Caused by: {}", statement, res.getParseErrorMsg()); fail(); return ""; } @@ -523,6 +523,101 @@ public void testBasicQuery() { executeAndCompare(statement, expected); } + @Test + public void testKeyFilter() { + String statement = "SELECT s FROM ah.* WHERE key < 100;"; + String expected = + "ResultSets:\n" + + "+---+---------+-----------------------+\n" + + "|key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|\n" + + "+---+---------+-----------------------+\n" + + "| 0| 1| 3|\n" + + "| 1| 2| 4|\n" + + "| 2| 3| 5|\n" + + "| 3| 4| 6|\n" + + "+---+---------+-----------------------+\n" + + "Total line number = 4\n"; + executeAndCompare(statement, expected); + + statement = "SELECT s FROM ah.* WHERE key >= 2 WITHOUT TAG;"; + expected = + "ResultSets:\n" + + "+---+---------+---------+\n" + + "|key|ah.hr01.s|ah.hr02.s|\n" + + "+---+---------+---------+\n" + + "| 2| 3| null|\n" + + "| 3| 4| null|\n" + + "|100| null| true|\n" + + "+---+---------+---------+\n" + + "Total line number = 3\n"; + executeAndCompare(statement, expected); + + statement = "SELECT s FROM ah.* WHERE key > 2 and key < 1000 with t1=v1;"; + expected = + "ResultSets:\n" + + "+---+-----------------------+----------------+\n" + + "|key|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s{t1=v1}|\n" + + "+---+-----------------------+----------------+\n" + + "| 3| 6| null|\n" + + "|400| null| false|\n" + + "+---+-----------------------+----------------+\n" + + "Total line number = 2\n"; + executeAndCompare(statement, expected); + + statement = "SELECT s FROM ah.* WHERE key > 2 and key < 1000 with_precise t1=v1;"; + expected = + "ResultSets:\n" + + "+---+----------------+\n" + + "|key|ah.hr02.s{t1=v1}|\n" + + "+---+----------------+\n" + + "|400| false|\n" + + "+---+----------------+\n" + + "Total line number = 1\n"; + executeAndCompare(statement, expected); + } + + @Test + public void testValueFilter() { + // 至少有一列的值大于等于4 + String statement = "SELECT s FROM ah.hr01 WHERE s >= 4;"; + String expected = + "ResultSets:\n" + + "+---+---------+-----------------------+\n" + + "|key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|\n" + + "+---+---------+-----------------------+\n" + + "| 1| 2| 4|\n" + + "| 2| 3| 5|\n" + + "| 3| 4| 6|\n" + + "+---+---------+-----------------------+\n" + + "Total line number = 3\n"; + executeAndCompare(statement, expected); + + // 每列的值均大于等于4 + statement = "SELECT s FROM ah.hr01 WHERE s &>= 4;"; + expected = + "ResultSets:\n" + + "+---+---------+-----------------------+\n" + + "|key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|\n" + + "+---+---------+-----------------------+\n" + + "| 3| 4| 6|\n" + + "+---+---------+-----------------------+\n" + + "Total line number = 1\n"; + executeAndCompare(statement, expected); + + statement = "SELECT s FROM ah.hr01 WHERE s >= 4 with t1=*;"; + expected = + "ResultSets:\n" + + "+---+-----------------------+\n" + + "|key|ah.hr01.s{t1=v1,t2=vv1}|\n" + + "+---+-----------------------+\n" + + "| 1| 4|\n" + + "| 2| 5|\n" + + "| 3| 6|\n" + + "+---+-----------------------+\n" + + "Total line number = 3\n"; + executeAndCompare(statement, expected); + } + @Test public void testQueryWithoutTags() { String statement = "SELECT s FROM ah.*;"; @@ -704,16 +799,16 @@ public void testDeleteWithTag() { statement = "SELECT s FROM ah.*;"; expected = "ResultSets:\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" - + "| key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s|ah.hr02.s{t1=v1}|ah.hr03.s{t1=v1,t2=vv2}|ah.hr03.s{t1=vv1,t2=v2}|\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" - + "| 0| 1| 3| null| null| null| null|\n" - + "| 1| 2| 4| null| null| null| null|\n" - + "| 2| 3| 5| null| null| null| null|\n" - + "| 3| 4| 6| null| null| null| null|\n" - + "| 100| null| null| true| null| null| null|\n" - + "|1600| null| null| null| null| null| true|\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" + + "+----+---------+-----------------------+---------+-----------------------+\n" + + "| key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s|ah.hr03.s{t1=vv1,t2=v2}|\n" + + "+----+---------+-----------------------+---------+-----------------------+\n" + + "| 0| 1| 3| null| null|\n" + + "| 1| 2| 4| null| null|\n" + + "| 2| 3| 5| null| null|\n" + + "| 3| 4| 6| null| null|\n" + + "| 100| null| null| true| null|\n" + + "|1600| null| null| null| true|\n" + + "+----+---------+-----------------------+---------+-----------------------+\n" + "Total line number = 6\n"; executeAndCompare(statement, expected); } @@ -745,17 +840,17 @@ public void testDeleteWithMultiTags() { statement = "SELECT s FROM ah.*;"; expected = "ResultSets:\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" - + "| key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s|ah.hr02.s{t1=v1}|ah.hr03.s{t1=v1,t2=vv2}|ah.hr03.s{t1=vv1,t2=v2}|\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" - + "| 0| 1| 3| null| null| null| null|\n" - + "| 1| 2| 4| null| null| null| null|\n" - + "| 2| 3| 5| null| null| null| null|\n" - + "| 3| 4| 6| null| null| null| null|\n" - + "| 100| null| null| true| null| null| null|\n" - + "| 400| null| null| null| false| null| null|\n" - + "|1600| null| null| null| null| null| true|\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" + + "+----+---------+-----------------------+---------+----------------+-----------------------+\n" + + "| key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s|ah.hr02.s{t1=v1}|ah.hr03.s{t1=vv1,t2=v2}|\n" + + "+----+---------+-----------------------+---------+----------------+-----------------------+\n" + + "| 0| 1| 3| null| null| null|\n" + + "| 1| 2| 4| null| null| null|\n" + + "| 2| 3| 5| null| null| null|\n" + + "| 3| 4| 6| null| null| null|\n" + + "| 100| null| null| true| null| null|\n" + + "| 400| null| null| null| false| null|\n" + + "|1600| null| null| null| null| true|\n" + + "+----+---------+-----------------------+---------+----------------+-----------------------+\n" + "Total line number = 7\n"; executeAndCompare(statement, expected); @@ -765,16 +860,16 @@ public void testDeleteWithMultiTags() { statement = "SELECT s FROM ah.*;"; expected = "ResultSets:\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" - + "| key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s|ah.hr02.s{t1=v1}|ah.hr03.s{t1=v1,t2=vv2}|ah.hr03.s{t1=vv1,t2=v2}|\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" - + "| 0| 1| 3| null| null| null| null|\n" - + "| 1| 2| 4| null| null| null| null|\n" - + "| 2| 3| 5| null| null| null| null|\n" - + "| 3| 4| 6| null| null| null| null|\n" - + "| 100| null| null| true| null| null| null|\n" - + "|1600| null| null| null| null| null| true|\n" - + "+----+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" + + "+----+---------+-----------------------+---------+-----------------------+\n" + + "| key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s|ah.hr03.s{t1=vv1,t2=v2}|\n" + + "+----+---------+-----------------------+---------+-----------------------+\n" + + "| 0| 1| 3| null| null|\n" + + "| 1| 2| 4| null| null|\n" + + "| 2| 3| 5| null| null|\n" + + "| 3| 4| 6| null| null|\n" + + "| 100| null| null| true| null|\n" + + "|1600| null| null| null| true|\n" + + "+----+---------+-----------------------+---------+-----------------------+\n" + "Total line number = 6\n"; executeAndCompare(statement, expected); @@ -784,15 +879,15 @@ public void testDeleteWithMultiTags() { statement = "SELECT s FROM ah.*;"; expected = "ResultSets:\n" - + "+---+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" - + "|key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s|ah.hr02.s{t1=v1}|ah.hr03.s{t1=v1,t2=vv2}|ah.hr03.s{t1=vv1,t2=v2}|\n" - + "+---+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" - + "| 0| 1| 3| null| null| null| null|\n" - + "| 1| 2| 4| null| null| null| null|\n" - + "| 2| 3| 5| null| null| null| null|\n" - + "| 3| 4| 6| null| null| null| null|\n" - + "|100| null| null| true| null| null| null|\n" - + "+---+---------+-----------------------+---------+----------------+-----------------------+-----------------------+\n" + + "+---+---------+-----------------------+---------+\n" + + "|key|ah.hr01.s|ah.hr01.s{t1=v1,t2=vv1}|ah.hr02.s|\n" + + "+---+---------+-----------------------+---------+\n" + + "| 0| 1| 3| null|\n" + + "| 1| 2| 4| null|\n" + + "| 2| 3| 5| null|\n" + + "| 3| 4| 6| null|\n" + + "|100| null| null| true|\n" + + "+---+---------+-----------------------+---------+\n" + "Total line number = 5\n"; executeAndCompare(statement, expected); } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java index 550ae41358..278051b348 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFIT.java @@ -1039,30 +1039,32 @@ public void testRowTransform() { ret = tool.execute(query); expected = "ResultSets:\n" - + "+-----------------+-------------+----------------------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+-----------------+-------------+----------------------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: test.a,cos(test.a)|\n" - + "| +--RowTransform| RowTransform|FuncList(Name, FuncType): (arithmetic_expr, System), (cos, UDF), MappingType: RowMapping|\n" - + "| +--Project | Project| Patterns: test.a|\n" - + "| +--Project | Project| Patterns: test.a, Target DU: unit0000000002|\n" - + "+-----------------+-------------+----------------------------------------------------------------------------------------+\n" - + "Total line number = 4\n"; + + "+-------------------+----------------+----------------------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+-------------------+----------------+----------------------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: test.a,cos(test.a)|\n" + + "| +--RowTransform| RowTransform|FuncList(Name, FuncType): (arithmetic_expr, System), (cos, UDF), MappingType: RowMapping|\n" + + "| +--Project | Project| Patterns: test.a|\n" + + "| +--Project | Project| Patterns: test.a, Target DU: unit0000000002|\n" + + "+-------------------+----------------+----------------------------------------------------------------------------------------+\n" + + "Total line number = 5\n"; assertEquals(expected, ret.getResultInString(false, "")); query = "explain select cos(a), pow(b, 2) from test;"; ret = tool.execute(query); expected = "ResultSets:\n" - + "+-----------------+-------------+-------------------------------------------------------------------------+\n" - + "| Logical Tree|Operator Type| Operator Info|\n" - + "+-----------------+-------------+-------------------------------------------------------------------------+\n" - + "|Reorder | Reorder| Order: *|\n" - + "| +--RowTransform| RowTransform|FuncList(Name, FuncType): (cos, UDF), (pow, UDF), MappingType: RowMapping|\n" - + "| +--Project | Project| Patterns: test.b,test.a|\n" - + "| +--Project | Project| Patterns: test.a,test.b, Target DU: unit0000000002|\n" - + "+-----------------+-------------+-------------------------------------------------------------------------+\n" - + "Total line number = 4\n"; + + "+-------------------+----------------+-------------------------------------------------------------------------+\n" + + "| Logical Tree| Operator Type| Operator Info|\n" + + "+-------------------+----------------+-------------------------------------------------------------------------+\n" + + "|RemoveNullColumn |RemoveNullColumn| RemoveNullColumn|\n" + + "| +--Reorder | Reorder| Order: *|\n" + + "| +--RowTransform| RowTransform|FuncList(Name, FuncType): (cos, UDF), (pow, UDF), MappingType: RowMapping|\n" + + "| +--Project | Project| Patterns: test.b,test.a|\n" + + "| +--Project | Project| Patterns: test.a,test.b, Target DU: unit0000000002|\n" + + "+-------------------+----------------+-------------------------------------------------------------------------+\n" + + "Total line number = 5\n"; assertEquals(expected, ret.getResultInString(false, "")); } From 147aa158f349adf5a52ee091495fc35ab8cc74e9 Mon Sep 17 00:00:00 2001 From: ZM <12236590+shinyano@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:40:45 +0800 Subject: [PATCH 24/33] fix(ci): correcting docker installation fault on mac (#495) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mac上的容器运行环境为colima,依赖于qemu,因此,必须先安装qemu --- .github/actions/dependence/action.yml | 2 +- .github/workflows/standard-test-suite.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/dependence/action.yml b/.github/actions/dependence/action.yml index 4d63ce6f17..8d488c5647 100644 --- a/.github/actions/dependence/action.yml +++ b/.github/actions/dependence/action.yml @@ -40,7 +40,7 @@ runs: shell: bash run: | brew update - brew install docker + brew install docker qemu brew install colima LIMACTL_PATH=$(brew --prefix)/bin/limactl sudo curl -L -o $LIMACTL_PATH https://github.com/mikekazakov/lima-nohvf/raw/master/limactl && sudo chmod +x $LIMACTL_PATH diff --git a/.github/workflows/standard-test-suite.yml b/.github/workflows/standard-test-suite.yml index 7a09f09a9e..db8c83694a 100644 --- a/.github/workflows/standard-test-suite.yml +++ b/.github/workflows/standard-test-suite.yml @@ -35,7 +35,7 @@ jobs: uses: ./.github/workflows/remote-test.yml with: metadata-matrix: '["zookeeper"]' - assemebly-test: + assembly-test: uses: ./.github/workflows/assembly-test.yml tpc-h-regression-test: uses: ./.github/workflows/tpc-h.yml From c7939f88b8e17a00e1fa85abff0f903479dbad0b Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Thu, 14 Nov 2024 16:40:09 +0800 Subject: [PATCH 25/33] feat(sql): join by key & extract & add dummy test (#488) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加 join using key 的语法 增加系统函数:extract 增加叠加分片范围有重叠,但实际数据不重叠的测试 --- .../antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 2 +- .../logical/generator/QueryGenerator.java | 12 +- .../engine/logical/utils/OperatorUtils.java | 4 + .../naive/NaiveOperatorMemoryExecutor.java | 147 ++++++++++++------ .../engine/shared/function/FunctionUtils.java | 4 +- .../function/manager/FunctionManager.java | 2 + .../shared/function/system/Extract.java | 120 ++++++++++++++ .../engine/shared/operator/InnerJoin.java | 41 +++++ .../engine/shared/operator/OuterJoin.java | 39 +++++ .../tsinghua/iginx/sql/IginXSqlVisitor.java | 3 +- .../frompart/join/JoinCondition.java | 22 ++- .../FilterPushDownPathUnionJoinRule.java | 6 +- .../tsinghua/iginx/optimizer/TreeBuilder.java | 3 +- .../expansion/BaseCapacityExpansionIT.java | 51 +++++- .../mongodb/MongoDBCapacityExpansionIT.java | 36 +++++ .../mysql/MySQLCapacityExpansionIT.java | 36 +++++ .../PostgreSQLCapacityExpansionIT.java | 36 +++++ .../redis/RedisCapacityExpansionIT.java | 35 +++++ .../integration/func/sql/SQLSessionIT.java | 116 ++++++++++++++ 19 files changed, 643 insertions(+), 72 deletions(-) create mode 100644 core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Extract.java diff --git a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 index 3da70820a7..6fc07ac307 100644 --- a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 +++ b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 @@ -279,7 +279,7 @@ fromClause joinPart : COMMA tableReference | CROSS JOIN tableReference - | join tableReference (ON orExpression | USING colList)? + | join tableReference (ON orExpression | USING (KEY | colList))? ; tableReference diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java index e2c5d7c963..01ca042260 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/generator/QueryGenerator.java @@ -481,6 +481,7 @@ private Operator initFilterAndMergeFragmentsWithJoin(UnarySelectStatement select Filter filter = joinCondition.getFilter(); List joinColumns = joinCondition.getJoinColumns(); boolean isNaturalJoin = JoinType.isNaturalJoin(joinCondition.getJoinType()); + boolean isJoinByKey = joinCondition.isJoinByKey(); if (!joinColumns.isEmpty() || isNaturalJoin) { if (prefixA == null || prefixB == null) { @@ -507,6 +508,7 @@ private Operator initFilterAndMergeFragmentsWithJoin(UnarySelectStatement select filter, joinColumns, isNaturalJoin, + isJoinByKey, joinAlgType); break; case LeftOuterJoin: @@ -527,6 +529,7 @@ private Operator initFilterAndMergeFragmentsWithJoin(UnarySelectStatement select filter, joinColumns, isNaturalJoin, + isJoinByKey, joinAlgType); break; default: @@ -727,7 +730,7 @@ private Operator buildAddSequence(UnarySelectStatement selectStatement, Operator * @return 添加了Reorder操作符的根节点 */ private static Operator buildReorder(UnarySelectStatement selectStatement, Operator root) { - boolean hasFuncWithArgs = + boolean hasUDFWithArgs = selectStatement.getExpressions().stream() .anyMatch( expression -> { @@ -735,13 +738,14 @@ private static Operator buildReorder(UnarySelectStatement selectStatement, Opera return false; } FuncExpression funcExpression = ((FuncExpression) expression); - return !funcExpression.getArgs().isEmpty() - || !funcExpression.getKvargs().isEmpty(); + return funcExpression.isPyUDF() + && (!funcExpression.getArgs().isEmpty() + || !funcExpression.getKvargs().isEmpty()); }); if (selectStatement.isLastFirst()) { root = new Reorder(new OperatorSource(root), Arrays.asList("path", "value")); - } else if (hasFuncWithArgs) { + } else if (hasUDFWithArgs) { root = new Reorder(new OperatorSource(root), new ArrayList<>(Collections.singletonList("*"))); } else { List order = new ArrayList<>(); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java index f953cb9d81..9747f1646f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/logical/utils/OperatorUtils.java @@ -222,6 +222,7 @@ public static Operator translateApply(Operator root, List correlatedVari null, new ArrayList<>(), false, + false, JoinAlgType.HashJoin, correlatedVariables); } else { @@ -311,6 +312,7 @@ private static Operator pushDownApply(Operator root, List correlatedVari singleJoin.getFilter(), new ArrayList<>(), false, + false, singleJoin.getJoinAlgType(), singleJoin.getExtraJoinPrefix()); } @@ -374,6 +376,7 @@ private static Operator pushDownApply(Operator root, List correlatedVari new BoolFilter(true), new ArrayList<>(), false, + false, JoinAlgType.HashJoin, correlatedVariables); } @@ -563,6 +566,7 @@ private static Operator combineAdjacentSelectAndJoin(Select select) { select.getFilter(), new ArrayList<>(), false, + false, algType, crossJoin.getExtraJoinPrefix()); case InnerJoin: diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java index 23e6f6c3ff..9e111e24e9 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/naive/NaiveOperatorMemoryExecutor.java @@ -53,6 +53,7 @@ import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; import cn.edu.tsinghua.iginx.engine.shared.data.read.RowStream; +import cn.edu.tsinghua.iginx.engine.shared.expr.KeyExpression; import cn.edu.tsinghua.iginx.engine.shared.function.*; import cn.edu.tsinghua.iginx.engine.shared.function.system.Max; import cn.edu.tsinghua.iginx.engine.shared.function.system.Min; @@ -660,57 +661,7 @@ private RowStream executeJoin(Join join, Table tableA, Table tableB) throws Phys } // 目前只支持使用时间戳和顺序 if (join.getJoinBy().equals(Constants.KEY)) { - // 检查时间戳 - if (!headerA.hasKey() || !headerB.hasKey()) { - throw new InvalidOperatorParameterException( - "row streams for join operator by key should have key."); - } - List newFields = new ArrayList<>(); - newFields.addAll(headerA.getFields()); - newFields.addAll(headerB.getFields()); - Header newHeader = new Header(Field.KEY, newFields); - List newRows = new ArrayList<>(); - - int index1 = 0, index2 = 0; - while (index1 < tableA.getRowSize() && index2 < tableB.getRowSize()) { - Row rowA = tableA.getRow(index1), rowB = tableB.getRow(index2); - Object[] values = new Object[newHeader.getFieldSize()]; - long timestamp; - if (rowA.getKey() == rowB.getKey()) { - timestamp = rowA.getKey(); - System.arraycopy(rowA.getValues(), 0, values, 0, headerA.getFieldSize()); - System.arraycopy( - rowB.getValues(), 0, values, headerA.getFieldSize(), headerB.getFieldSize()); - index1++; - index2++; - } else if (rowA.getKey() < rowB.getKey()) { - timestamp = rowA.getKey(); - System.arraycopy(rowA.getValues(), 0, values, 0, headerA.getFieldSize()); - index1++; - } else { - timestamp = rowB.getKey(); - System.arraycopy( - rowB.getValues(), 0, values, headerA.getFieldSize(), headerB.getFieldSize()); - index2++; - } - newRows.add(new Row(newHeader, timestamp, values)); - } - - for (; index1 < tableA.getRowSize(); index1++) { - Row rowA = tableA.getRow(index1); - Object[] values = new Object[newHeader.getFieldSize()]; - System.arraycopy(rowA.getValues(), 0, values, 0, headerA.getFieldSize()); - newRows.add(new Row(newHeader, rowA.getKey(), values)); - } - - for (; index2 < tableB.getRowSize(); index2++) { - Row rowB = tableB.getRow(index2); - Object[] values = new Object[newHeader.getFieldSize()]; - System.arraycopy( - rowB.getValues(), 0, values, headerA.getFieldSize(), headerB.getFieldSize()); - newRows.add(new Row(newHeader, rowB.getKey(), values)); - } - return new Table(newHeader, newRows); + return executeJoinByKey(tableA, tableB, true, true); } else if (join.getJoinBy().equals(Constants.ORDINAL)) { if (headerA.hasKey() || headerB.hasKey()) { throw new InvalidOperatorParameterException( @@ -778,6 +729,17 @@ private RowStream executeCrossJoin(CrossJoin crossJoin, Table tableA, Table tabl private RowStream executeInnerJoin(InnerJoin innerJoin, Table tableA, Table tableB) throws PhysicalException { + if (innerJoin.isJoinByKey()) { + Sort sortByKey = + new Sort( + EmptySource.EMPTY_SOURCE, + Collections.singletonList(new KeyExpression(KEY)), + Collections.singletonList(Sort.SortType.ASC)); + tableA = transformToTable(executeSort(sortByKey, tableA)); + tableB = transformToTable(executeSort(sortByKey, tableB)); + return executeJoinByKey(tableA, tableB, false, false); + } + switch (innerJoin.getJoinAlgType()) { case NestedLoopJoin: return executeNestedLoopInnerJoin(innerJoin, tableA, tableB); @@ -790,6 +752,76 @@ private RowStream executeInnerJoin(InnerJoin innerJoin, Table tableA, Table tabl } } + private RowStream executeJoinByKey(Table tableA, Table tableB, boolean isLeft, boolean isRight) + throws PhysicalException { + Header headerA = tableA.getHeader(); + Header headerB = tableB.getHeader(); + // 检查时间戳 + if (!headerA.hasKey() || !headerB.hasKey()) { + throw new InvalidOperatorParameterException( + "row streams for join operator by key should have key."); + } + List newFields = new ArrayList<>(); + newFields.addAll(headerA.getFields()); + newFields.addAll(headerB.getFields()); + Header newHeader = new Header(Field.KEY, newFields); + List newRows = new ArrayList<>(); + + int index1 = 0, index2 = 0; + while (index1 < tableA.getRowSize() && index2 < tableB.getRowSize()) { + Row rowA = tableA.getRow(index1), rowB = tableB.getRow(index2); + Object[] values = new Object[newHeader.getFieldSize()]; + long timestamp; + if (rowA.getKey() == rowB.getKey()) { + timestamp = rowA.getKey(); + System.arraycopy(rowA.getValues(), 0, values, 0, headerA.getFieldSize()); + System.arraycopy( + rowB.getValues(), 0, values, headerA.getFieldSize(), headerB.getFieldSize()); + index1++; + index2++; + } else if (rowA.getKey() < rowB.getKey()) { + index1++; + if (!isLeft) { // 内连接和右连接不保留该结果 + continue; + } + timestamp = rowA.getKey(); + System.arraycopy(rowA.getValues(), 0, values, 0, headerA.getFieldSize()); + } else { + index2++; + if (!isRight) { // 内连接和左连接不保留该结果 + continue; + } + timestamp = rowB.getKey(); + System.arraycopy( + rowB.getValues(), 0, values, headerA.getFieldSize(), headerB.getFieldSize()); + } + newRows.add(new Row(newHeader, timestamp, values)); + } + + // 左连接和全连接才保留该结果 + if (isLeft) { + for (; index1 < tableA.getRowSize(); index1++) { + Row rowA = tableA.getRow(index1); + Object[] values = new Object[newHeader.getFieldSize()]; + System.arraycopy(rowA.getValues(), 0, values, 0, headerA.getFieldSize()); + newRows.add(new Row(newHeader, rowA.getKey(), values)); + } + } + + // 右连接和全连接才保留该结果 + if (isRight) { + for (; index2 < tableB.getRowSize(); index2++) { + Row rowB = tableB.getRow(index2); + Object[] values = new Object[newHeader.getFieldSize()]; + System.arraycopy( + rowB.getValues(), 0, values, headerA.getFieldSize(), headerB.getFieldSize()); + newRows.add(new Row(newHeader, rowB.getKey(), values)); + } + } + + return new Table(newHeader, newRows); + } + private RowStream executeNestedLoopInnerJoin(InnerJoin innerJoin, Table tableA, Table tableB) throws PhysicalException { List joinColumns = new ArrayList<>(innerJoin.getJoinColumns()); @@ -1187,6 +1219,19 @@ private RowStream executeSortedMergeInnerJoin(InnerJoin innerJoin, Table tableA, private RowStream executeOuterJoin(OuterJoin outerJoin, Table tableA, Table tableB) throws PhysicalException { + if (outerJoin.isJoinByKey()) { + Sort sortByKey = + new Sort( + EmptySource.EMPTY_SOURCE, + Collections.singletonList(new KeyExpression(KEY)), + Collections.singletonList(Sort.SortType.ASC)); + tableA = transformToTable(executeSort(sortByKey, tableA)); + tableB = transformToTable(executeSort(sortByKey, tableB)); + boolean isLeft = outerJoin.getOuterJoinType() != OuterJoinType.RIGHT; + boolean isRight = outerJoin.getOuterJoinType() != OuterJoinType.LEFT; + return executeJoinByKey(tableA, tableB, isLeft, isRight); + } + switch (outerJoin.getJoinAlgType()) { case NestedLoopJoin: return executeNestedLoopOuterJoin(outerJoin, tableA, tableB); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java index 137eb624bc..023cc37f10 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/FunctionUtils.java @@ -53,7 +53,7 @@ public class FunctionUtils { private static final String VALUE = "value"; private static final Set sysRowToRowFunctionSet = - new HashSet<>(Arrays.asList("ratio", "substring")); + new HashSet<>(Arrays.asList("extract", "ratio", "substring")); private static final Set sysSetToRowFunctionSet = new HashSet<>( @@ -165,7 +165,6 @@ public static String getFunctionName(Function function) { static Map expectedParamNumMap = new HashMap<>(); // 此Map用于存储function期望的参数个数 - // TODO static { expectedParamNumMap.put("avg", 1); expectedParamNumMap.put("sum", 1); @@ -176,6 +175,7 @@ public static String getFunctionName(Function function) { expectedParamNumMap.put("last_value", 1); expectedParamNumMap.put("first", 1); expectedParamNumMap.put("last", 1); + expectedParamNumMap.put("extract", 1); expectedParamNumMap.put("ratio", 2); expectedParamNumMap.put("substring", 1); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java index e04cf5a4f5..41a90f8d55 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java @@ -28,6 +28,7 @@ import cn.edu.tsinghua.iginx.engine.shared.function.system.ArithmeticExpr; import cn.edu.tsinghua.iginx.engine.shared.function.system.Avg; import cn.edu.tsinghua.iginx.engine.shared.function.system.Count; +import cn.edu.tsinghua.iginx.engine.shared.function.system.Extract; import cn.edu.tsinghua.iginx.engine.shared.function.system.First; import cn.edu.tsinghua.iginx.engine.shared.function.system.FirstValue; import cn.edu.tsinghua.iginx.engine.shared.function.system.Last; @@ -100,6 +101,7 @@ private void initSystemFunctions() { registerFunction(Min.getInstance()); registerFunction(Sum.getInstance()); registerFunction(ArithmeticExpr.getInstance()); + registerFunction(Extract.getInstance()); registerFunction(Ratio.getInstance()); registerFunction(SubString.getInstance()); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Extract.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Extract.java new file mode 100644 index 0000000000..96c6bbd4a9 --- /dev/null +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Extract.java @@ -0,0 +1,120 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * TSIGinX@gmail.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package cn.edu.tsinghua.iginx.engine.shared.function.system; + +import cn.edu.tsinghua.iginx.engine.shared.data.Value; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Field; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Header; +import cn.edu.tsinghua.iginx.engine.shared.data.read.Row; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionParams; +import cn.edu.tsinghua.iginx.engine.shared.function.FunctionType; +import cn.edu.tsinghua.iginx.engine.shared.function.MappingType; +import cn.edu.tsinghua.iginx.engine.shared.function.RowMappingFunction; +import cn.edu.tsinghua.iginx.thrift.DataType; +import java.time.Instant; +import java.time.LocalDateTime; +import java.util.Collections; +import java.util.TimeZone; + +public class Extract implements RowMappingFunction { + + public static final String EXTRACT = "extract"; + + private static final Extract INSTANCE = new Extract(); + + private Extract() {} + + public static Extract getInstance() { + return INSTANCE; + } + + @Override + public FunctionType getFunctionType() { + return FunctionType.System; + } + + @Override + public MappingType getMappingType() { + return MappingType.RowMapping; + } + + @Override + public String getIdentifier() { + return EXTRACT; + } + + @Override + public Row transform(Row row, FunctionParams params) throws Exception { + if (params.getPaths().size() != 1 || params.getArgs().size() != 1) { + throw new IllegalArgumentException("Unexpected params for extract."); + } + + String path = params.getPaths().get(0); + Value valueA = row.getAsValue(path); + if (valueA == null || valueA.isNull()) { + return Row.EMPTY_ROW; + } + if (valueA.getDataType() != DataType.LONG && valueA.getDataType() != DataType.INTEGER) { + throw new IllegalArgumentException("Unexpected data type for extract function."); + } + + if (!(params.getArgs().get(0) instanceof byte[])) { + throw new IllegalArgumentException("The 2nd arg 'field' for extract should be a string."); + } + + long timestamp = (long) valueA.getValue(); + Instant instant = Instant.ofEpochMilli(timestamp); + LocalDateTime localDateTime = + instant.atZone(TimeZone.getTimeZone("GMT").toZoneId()).toLocalDateTime(); + + int ret; + String field = new String((byte[]) params.getArgs().get(0)).toLowerCase(); + switch (field) { + case "year": + ret = localDateTime.getYear(); + break; + case "month": + ret = localDateTime.getMonthValue(); + break; + case "day": + ret = localDateTime.getDayOfMonth(); + break; + case "hour": + ret = localDateTime.getHour(); + break; + case "minute": + ret = localDateTime.getMinute(); + break; + case "second": + ret = localDateTime.getSecond(); + break; + default: + throw new IllegalArgumentException( + "The 2nd arg 'field' for extract is expected in [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"]."); + } + + Header newHeader = + new Header( + row.getHeader().getKey(), + Collections.singletonList( + new Field("extract(" + path + ", " + field + ")", DataType.INTEGER))); + return new Row(newHeader, row.getKey(), new Object[] {ret}); + } +} diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/InnerJoin.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/InnerJoin.java index c204bb1119..fe89f92566 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/InnerJoin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/InnerJoin.java @@ -39,6 +39,8 @@ public class InnerJoin extends AbstractJoin { private final boolean isNaturalJoin; + private final boolean isJoinByKey; + public InnerJoin( Source sourceA, Source sourceB, @@ -66,6 +68,7 @@ public InnerJoin( tagFilter, joinColumns, false, + false, JoinAlgType.HashJoin, new ArrayList<>()); } @@ -87,6 +90,7 @@ public InnerJoin( null, joinColumns, isNaturalJoin, + false, JoinAlgType.HashJoin, new ArrayList<>()); } @@ -109,6 +113,31 @@ public InnerJoin( null, joinColumns, isNaturalJoin, + false, + joinAlgType, + new ArrayList<>()); + } + + public InnerJoin( + Source sourceA, + Source sourceB, + String prefixA, + String prefixB, + Filter filter, + List joinColumns, + boolean isNaturalJoin, + boolean isJoinByKey, + JoinAlgType joinAlgType) { + this( + sourceA, + sourceB, + prefixA, + prefixB, + filter, + null, + joinColumns, + isNaturalJoin, + isJoinByKey, joinAlgType, new ArrayList<>()); } @@ -122,6 +151,7 @@ public InnerJoin( TagFilter tagFilter, List joinColumns, boolean isNaturalJoin, + boolean isJoinByKey, JoinAlgType joinAlgType, List extraJoinPrefix) { super(OperatorType.InnerJoin, sourceA, sourceB, prefixA, prefixB, joinAlgType, extraJoinPrefix); @@ -132,6 +162,7 @@ public InnerJoin( this.joinColumns = new ArrayList<>(); } this.isNaturalJoin = isNaturalJoin; + this.isJoinByKey = isJoinByKey; this.tagFilter = tagFilter; } @@ -143,6 +174,7 @@ public InnerJoin( Filter filter, List joinColumns, boolean isNaturalJoin, + boolean isJoinByKey, JoinAlgType joinAlgType, List extraJoinPrefix) { this( @@ -154,6 +186,7 @@ public InnerJoin( null, joinColumns, isNaturalJoin, + isJoinByKey, joinAlgType, extraJoinPrefix); } @@ -170,6 +203,10 @@ public boolean isNaturalJoin() { return isNaturalJoin; } + public boolean isJoinByKey() { + return isJoinByKey; + } + public void setFilter(Filter filter) { this.filter = filter; } @@ -197,6 +234,7 @@ public Operator copy() { tagFilter == null ? null : tagFilter.copy(), new ArrayList<>(joinColumns), isNaturalJoin, + isJoinByKey, getJoinAlgType(), new ArrayList<>(getExtraJoinPrefix())); } @@ -212,12 +250,14 @@ public BinaryOperator copyWithSource(Source sourceA, Source sourceB) { tagFilter == null ? null : tagFilter.copy(), new ArrayList<>(joinColumns), isNaturalJoin, + isJoinByKey, getJoinAlgType(), new ArrayList<>(getExtraJoinPrefix())); } @Override public String getInfo() { + // TODO StringBuilder builder = new StringBuilder(); builder.append("PrefixA: ").append(getPrefixA()); builder.append(", PrefixB: ").append(getPrefixB()); @@ -252,6 +292,7 @@ public boolean equals(Object object) { } InnerJoin that = (InnerJoin) object; return isNaturalJoin == that.isNaturalJoin + && isJoinByKey == that.isJoinByKey && joinColumns.equals(that.joinColumns) && filter.equals(that.filter) && tagFilter.equals(that.tagFilter) diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/OuterJoin.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/OuterJoin.java index 540f06f106..0656fccac4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/OuterJoin.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/operator/OuterJoin.java @@ -37,6 +37,8 @@ public class OuterJoin extends AbstractJoin { private final boolean isNaturalJoin; + private final boolean isJoinByKey; + public OuterJoin( Source sourceA, Source sourceB, @@ -54,6 +56,7 @@ public OuterJoin( filter, joinColumns, false, + false, JoinAlgType.HashJoin, new ArrayList<>()); } @@ -77,6 +80,32 @@ public OuterJoin( filter, joinColumns, isNaturalJoin, + false, + joinAlgType, + new ArrayList<>()); + } + + public OuterJoin( + Source sourceA, + Source sourceB, + String prefixA, + String prefixB, + OuterJoinType outerJoinType, + Filter filter, + List joinColumns, + boolean isNaturalJoin, + boolean isJoinByKey, + JoinAlgType joinAlgType) { + this( + sourceA, + sourceB, + prefixA, + prefixB, + outerJoinType, + filter, + joinColumns, + isNaturalJoin, + isJoinByKey, joinAlgType, new ArrayList<>()); } @@ -90,6 +119,7 @@ public OuterJoin( Filter filter, List joinColumns, boolean isNaturalJoin, + boolean isJoinByKey, JoinAlgType joinAlgType, List extraJoinPrefix) { super(OperatorType.OuterJoin, sourceA, sourceB, prefixA, prefixB, joinAlgType, extraJoinPrefix); @@ -101,6 +131,7 @@ public OuterJoin( this.joinColumns = new ArrayList<>(); } this.isNaturalJoin = isNaturalJoin; + this.isJoinByKey = isJoinByKey; } public OuterJoinType getOuterJoinType() { @@ -123,6 +154,10 @@ public boolean isNaturalJoin() { return isNaturalJoin; } + public boolean isJoinByKey() { + return isJoinByKey; + } + public void setFilter(Filter filter) { this.filter = filter; } @@ -143,6 +178,7 @@ public Operator copy() { filter.copy(), new ArrayList<>(joinColumns), isNaturalJoin, + isJoinByKey, getJoinAlgType(), new ArrayList<>(getExtraJoinPrefix())); } @@ -158,12 +194,14 @@ public BinaryOperator copyWithSource(Source sourceA, Source sourceB) { filter.copy(), new ArrayList<>(joinColumns), isNaturalJoin, + isJoinByKey, getJoinAlgType(), new ArrayList<>(getExtraJoinPrefix())); } @Override public String getInfo() { + // TODO StringBuilder builder = new StringBuilder(); builder.append("PrefixA: ").append(getPrefixA()); builder.append(", PrefixB: ").append(getPrefixB()); @@ -202,6 +240,7 @@ public boolean equals(Object object) { && filter.equals(that.filter) && joinColumns.equals(that.joinColumns) && isNaturalJoin == that.isNaturalJoin + && isJoinByKey == that.isJoinByKey && getExtraJoinPrefix().equals(that.getExtraJoinPrefix()); } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index b4a8f19c9d..b6d5edee86 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -718,7 +718,8 @@ private void parseFromParts(FromClauseContext ctx, UnarySelectStatement selectSt .path() .forEach(pathContext -> columns.add(parsePath(pathContext))); } - joinPart.setJoinCondition(new JoinCondition(joinType, filter, columns)); + boolean isJoinByKey = joinPartContext.KEY() != null; + joinPart.setJoinCondition(new JoinCondition(joinType, filter, columns, isJoinByKey)); fromParts.add(joinPart); } } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinCondition.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinCondition.java index d271ab2367..a46a30cf95 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinCondition.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/frompart/join/JoinCondition.java @@ -30,21 +30,28 @@ public class JoinCondition { private final JoinType joinType; private final Filter filter; private final List joinColumns; + private final boolean isJoinByKey; private final String markColumn; private final boolean isAntiJoin; public JoinCondition() { - this(JoinType.CrossJoin, null, Collections.emptyList()); + this(JoinType.CrossJoin, null, Collections.emptyList(), false); } public JoinCondition(JoinType joinType, Filter filter) { - this(joinType, filter, Collections.emptyList()); + this(joinType, filter, Collections.emptyList(), false); } public JoinCondition(JoinType joinType, Filter filter, List joinColumns) { + this(joinType, filter, joinColumns, false); + } + + public JoinCondition( + JoinType joinType, Filter filter, List joinColumns, boolean isJoinByKey) { this.joinType = joinType; this.filter = filter; this.joinColumns = joinColumns; + this.isJoinByKey = isJoinByKey; this.markColumn = null; this.isAntiJoin = false; } @@ -53,6 +60,7 @@ public JoinCondition(JoinType joinType, Filter filter, String markColumn, boolea this.joinType = joinType; this.filter = filter; this.joinColumns = new ArrayList<>(); + this.isJoinByKey = false; this.markColumn = markColumn; this.isAntiJoin = isAntiJoin; } @@ -69,6 +77,10 @@ public List getJoinColumns() { return joinColumns; } + public boolean isJoinByKey() { + return isJoinByKey; + } + public String getMarkColumn() { return markColumn; } @@ -88,11 +100,13 @@ public boolean equals(Object o) { JoinCondition joinCondition = (JoinCondition) o; return joinType == joinCondition.joinType && Objects.equals(filter, joinCondition.filter) - && Objects.equals(joinColumns, joinCondition.joinColumns); + && Objects.equals(joinColumns, joinCondition.joinColumns) + && isJoinByKey == joinCondition.isJoinByKey + && isAntiJoin == joinCondition.isAntiJoin; } @Override public int hashCode() { - return Objects.hash(joinType, filter, joinColumns); + return Objects.hash(joinType, filter, joinColumns, isJoinByKey, isAntiJoin); } } diff --git a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java index adee6fccdf..3c73d6478d 100644 --- a/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java +++ b/optimizer/src/main/java/cn/edu/tsinghua/iginx/logical/optimizer/rules/FilterPushDownPathUnionJoinRule.java @@ -179,7 +179,7 @@ public void onMatch(RuleCall call) { new Select(operator.getSourceA(), new AndFilter(leftFilters), select.getTagFilter()); operator.setSourceA(new OperatorSource(leftSelect)); - if (operator.getType() == OperatorType.OuterJoin) { + if (operator.getType() == OperatorType.OuterJoin && !((OuterJoin) operator).isJoinByKey()) { OuterJoin outerJoin = (OuterJoin) operator; if (outerJoin.getOuterJoinType() == OuterJoinType.RIGHT) { operator = @@ -191,6 +191,7 @@ public void onMatch(RuleCall call) { outerJoin.getFilter(), outerJoin.getJoinColumns(), outerJoin.isNaturalJoin(), + outerJoin.isJoinByKey(), outerJoin.getJoinAlgType(), outerJoin.getExtraJoinPrefix()); } else if (outerJoin.getOuterJoinType() == OuterJoinType.FULL) { @@ -204,7 +205,7 @@ public void onMatch(RuleCall call) { new Select(operator.getSourceB(), new AndFilter(rightFilters), select.getTagFilter()); operator.setSourceB(new OperatorSource(rightSelect)); - if (operator.getType() == OperatorType.OuterJoin) { + if (operator.getType() == OperatorType.OuterJoin && !((OuterJoin) operator).isJoinByKey()) { OuterJoin outerJoin = (OuterJoin) operator; if (outerJoin.getOuterJoinType() == OuterJoinType.LEFT) { operator = @@ -216,6 +217,7 @@ public void onMatch(RuleCall call) { outerJoin.getFilter(), outerJoin.getJoinColumns(), outerJoin.isNaturalJoin(), + outerJoin.isJoinByKey(), outerJoin.getJoinAlgType(), outerJoin.getExtraJoinPrefix()); } else if (outerJoin.getOuterJoinType() == OuterJoinType.FULL) { diff --git a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreeBuilder.java b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreeBuilder.java index 0660ee3265..f5561eb1a0 100644 --- a/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreeBuilder.java +++ b/optimizer/src/test/java/cn/edu/tsinghua/iginx/optimizer/TreeBuilder.java @@ -97,7 +97,8 @@ public static Operator buildJoinTree1() { null, null, new PathFilter("test.a", Op.E, "test.b"), - null); + null, + false); Project projectC = new Project(EmptySource.EMPTY_SOURCE, Collections.emptyList(), null); OuterJoin outerJoin = diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java index 530718f4dd..483adf7579 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java @@ -206,7 +206,7 @@ private void addStorageEngineInProgress( } @Test - public void oriHasDataExpHasData() { + public void oriHasDataExpHasData() throws SessionException { // 查询原始节点的历史数据,结果不为空 testQueryHistoryDataOriHasData(); // 写入并查询新数据 @@ -222,6 +222,8 @@ public void oriHasDataExpHasData() { testWriteAndQueryNewDataAfterCE(); // 测试插入相同数据后warning testSameKeyWarning(); + // 测试分片范围重叠,但数据不重叠 + testPathOverlappedDataNotOverlapped(); } @Test @@ -920,16 +922,19 @@ protected void testDummyKeyRange() { } private void testSameKeyWarning() { + if (!SUPPORT_KEY.get(testConf.getStorageType())) { + return; + } + try { session.executeSql( "insert into mn.wf01.wt01 (key, status) values (0, 123),(1, 123),(2, 123),(3, 123);"); String statement = "select * from mn.wf01.wt01;"; QueryDataSet res = session.executeQuery(statement); - if ((res.getWarningMsg() == null - || res.getWarningMsg().isEmpty() - || !res.getWarningMsg().contains("The query results contain overlapped keys.")) - && SUPPORT_KEY.get(testConf.getStorageType())) { + if (res.getWarningMsg() == null + || res.getWarningMsg().isEmpty() + || !res.getWarningMsg().contains("The query results contain overlapped keys.")) { LOGGER.error("未抛出重叠key的警告"); fail(); } @@ -937,7 +942,7 @@ private void testSameKeyWarning() { clearData(); res = session.executeQuery(statement); - if (res.getWarningMsg() != null && SUPPORT_KEY.get(testConf.getStorageType())) { + if (res.getWarningMsg() != null) { LOGGER.error("不应抛出重叠key的警告"); fail(); } @@ -946,6 +951,40 @@ private void testSameKeyWarning() { } } + protected void testPathOverlappedDataNotOverlapped() throws SessionException { + // before + String statement = "select status from mn.wf01.wt01;"; + String expected = + "ResultSets:\n" + + "+---+-------------------+\n" + + "|key|mn.wf01.wt01.status|\n" + + "+---+-------------------+\n" + + "| 0| 11111111|\n" + + "| 1| 22222222|\n" + + "+---+-------------------+\n" + + "Total line number = 2\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + + String insert = + "insert into mn.wf01.wt01 (key, status) values (10, 33333333), (100, 44444444);"; + session.executeSql(insert); + + // after + statement = "select status from mn.wf01.wt01;"; + expected = + "ResultSets:\n" + + "+---+-------------------+\n" + + "|key|mn.wf01.wt01.status|\n" + + "+---+-------------------+\n" + + "| 0| 11111111|\n" + + "| 1| 22222222|\n" + + "| 10| 33333333|\n" + + "|100| 44444444|\n" + + "+---+-------------------+\n" + + "Total line number = 4\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + } + protected void startStorageEngineWithIginx(int port, boolean hasData, boolean isReadOnly) { String scriptPath, iginxPath = ".github/scripts/iginx/iginx.sh"; String os = System.getProperty("os.name").toLowerCase(); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java index 61fb8230c3..22505fe7da 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mongodb/MongoDBCapacityExpansionIT.java @@ -21,6 +21,7 @@ import static cn.edu.tsinghua.iginx.thrift.StorageEngineType.mongodb; +import cn.edu.tsinghua.iginx.exception.SessionException; import cn.edu.tsinghua.iginx.integration.controller.Controller; import cn.edu.tsinghua.iginx.integration.expansion.BaseCapacityExpansionIT; import cn.edu.tsinghua.iginx.integration.expansion.constant.Constant; @@ -510,4 +511,39 @@ protected void shutdownDatabase(int port) { protected void startDatabase(int port) { shutOrRestart(port, false, "mongodb"); } + + @Override + protected void testPathOverlappedDataNotOverlapped() throws SessionException { + // before + String statement = "select status from mn.wf01.wt01;"; + String expected = + "ResultSets:\n" + + "+----------+-------------------+\n" + + "| key|mn.wf01.wt01.status|\n" + + "+----------+-------------------+\n" + + "|4294967296| 11111111|\n" + + "|8589934592| 22222222|\n" + + "+----------+-------------------+\n" + + "Total line number = 2\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + + String insert = + "insert into mn.wf01.wt01 (key, status) values (10, 33333333), (100, 44444444);"; + session.executeSql(insert); + + // after + statement = "select status from mn.wf01.wt01;"; + expected = + "ResultSets:\n" + + "+----------+-------------------+\n" + + "| key|mn.wf01.wt01.status|\n" + + "+----------+-------------------+\n" + + "| 10| 33333333|\n" + + "| 100| 44444444|\n" + + "|4294967296| 11111111|\n" + + "|8589934592| 22222222|\n" + + "+----------+-------------------+\n" + + "Total line number = 4\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + } } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java index e660d93e54..46ee1f42bc 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/mysql/MySQLCapacityExpansionIT.java @@ -22,6 +22,7 @@ import static cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools.executeShellScript; import static org.junit.Assert.fail; +import cn.edu.tsinghua.iginx.exception.SessionException; import cn.edu.tsinghua.iginx.integration.controller.Controller; import cn.edu.tsinghua.iginx.integration.expansion.BaseCapacityExpansionIT; import cn.edu.tsinghua.iginx.integration.expansion.constant.Constant; @@ -103,4 +104,39 @@ private void testFloatData() { valuesList = Arrays.asList(Arrays.asList(44.55F)); SQLTestTools.executeAndCompare(session, statement, pathList, valuesList); } + + @Override + protected void testPathOverlappedDataNotOverlapped() throws SessionException { + // before + String statement = "select status from mn.wf01.wt01;"; + String expected = + "ResultSets:\n" + + "+-----------------+-------------------+\n" + + "| key|mn.wf01.wt01.status|\n" + + "+-----------------+-------------------+\n" + + "|32690615153702352| 11111111|\n" + + "|33357770565002400| 22222222|\n" + + "+-----------------+-------------------+\n" + + "Total line number = 2\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + + String insert = + "insert into mn.wf01.wt01 (key, status) values (10, 33333333), (100, 44444444);"; + session.executeSql(insert); + + // after + statement = "select status from mn.wf01.wt01;"; + expected = + "ResultSets:\n" + + "+-----------------+-------------------+\n" + + "| key|mn.wf01.wt01.status|\n" + + "+-----------------+-------------------+\n" + + "| 10| 33333333|\n" + + "| 100| 44444444|\n" + + "|32690615153702352| 11111111|\n" + + "|33357770565002400| 22222222|\n" + + "+-----------------+-------------------+\n" + + "Total line number = 4\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + } } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java index b3fa51f3c8..51809c4892 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/postgresql/PostgreSQLCapacityExpansionIT.java @@ -22,6 +22,7 @@ import static cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools.executeShellScript; import static org.junit.Assert.fail; +import cn.edu.tsinghua.iginx.exception.SessionException; import cn.edu.tsinghua.iginx.integration.controller.Controller; import cn.edu.tsinghua.iginx.integration.expansion.BaseCapacityExpansionIT; import cn.edu.tsinghua.iginx.integration.expansion.constant.Constant; @@ -193,4 +194,39 @@ private void changeParams(int port, String oldPw, String newPw) { fail("Fail to update postgresql params."); } } + + @Override + protected void testPathOverlappedDataNotOverlapped() throws SessionException { + // before + String statement = "select status from mn.wf01.wt01;"; + String expected = + "ResultSets:\n" + + "+-----------------+-------------------+\n" + + "| key|mn.wf01.wt01.status|\n" + + "+-----------------+-------------------+\n" + + "|32690615153702352| 11111111|\n" + + "|33357770565002400| 22222222|\n" + + "+-----------------+-------------------+\n" + + "Total line number = 2\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + + String insert = + "insert into mn.wf01.wt01 (key, status) values (10, 33333333), (100, 44444444);"; + session.executeSql(insert); + + // after + statement = "select status from mn.wf01.wt01;"; + expected = + "ResultSets:\n" + + "+-----------------+-------------------+\n" + + "| key|mn.wf01.wt01.status|\n" + + "+-----------------+-------------------+\n" + + "| 10| 33333333|\n" + + "| 100| 44444444|\n" + + "|32690615153702352| 11111111|\n" + + "|33357770565002400| 22222222|\n" + + "+-----------------+-------------------+\n" + + "Total line number = 4\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + } } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java index 224cf90180..3c16914160 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/redis/RedisCapacityExpansionIT.java @@ -21,6 +21,7 @@ import static cn.edu.tsinghua.iginx.thrift.StorageEngineType.redis; +import cn.edu.tsinghua.iginx.exception.SessionException; import cn.edu.tsinghua.iginx.integration.controller.Controller; import cn.edu.tsinghua.iginx.integration.expansion.BaseCapacityExpansionIT; import cn.edu.tsinghua.iginx.integration.expansion.constant.Constant; @@ -238,4 +239,38 @@ protected void shutdownDatabase(int port) { protected void startDatabase(int port) { shutOrRestart(port, false, "redis"); } + + protected void testPathOverlappedDataNotOverlapped() throws SessionException { + // before + String statement = "select status from mn.wf01.wt01;"; + String expected = + "ResultSets:\n" + + "+---+-------------------+\n" + + "|key|mn.wf01.wt01.status|\n" + + "+---+-------------------+\n" + + "| 0| 22222222|\n" + + "| 1| 11111111|\n" + + "+---+-------------------+\n" + + "Total line number = 2\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + + String insert = + "insert into mn.wf01.wt01 (key, status) values (10, \"33333333\"), (100, \"44444444\");"; + session.executeSql(insert); + + // after + statement = "select status from mn.wf01.wt01;"; + expected = + "ResultSets:\n" + + "+---+-------------------+\n" + + "|key|mn.wf01.wt01.status|\n" + + "+---+-------------------+\n" + + "| 0| 22222222|\n" + + "| 1| 11111111|\n" + + "| 10| 33333333|\n" + + "|100| 44444444|\n" + + "+---+-------------------+\n" + + "Total line number = 4\n"; + SQLTestTools.executeAndCompare(session, statement, expected); + } } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 922d15486b..538d2be3f2 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -3305,6 +3305,98 @@ public void testJoin() { executor.executeAndCompare(statement, expected); } + @Test + public void testJoinByKey() { + String insert = + "insert into test1(key, a, b) values (0, 1, 1.5), (1, 2, 2.5), (3, 4, 4.5), (4, 5, 5.5);"; + executor.execute(insert); + + insert = + "insert into test2(key, a, b) values (0, 1, \"aaa\"), (2, 3, \"bbb\"), (4, 5, \"ccc\"), (6, 7, \"ddd\");"; + executor.execute(insert); + + String statement = "select * from test1 join test2 using key;"; + String expected = + "ResultSets:\n" + + "+---+-------+-------+-------+-------+\n" + + "|key|test1.a|test1.b|test2.a|test2.b|\n" + + "+---+-------+-------+-------+-------+\n" + + "| 0| 1| 1.5| 1| aaa|\n" + + "| 4| 5| 5.5| 5| ccc|\n" + + "+---+-------+-------+-------+-------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + statement = "select * from test1 left join test2 using key;"; + expected = + "ResultSets:\n" + + "+---+-------+-------+-------+-------+\n" + + "|key|test1.a|test1.b|test2.a|test2.b|\n" + + "+---+-------+-------+-------+-------+\n" + + "| 0| 1| 1.5| 1| aaa|\n" + + "| 1| 2| 2.5| null| null|\n" + + "| 3| 4| 4.5| null| null|\n" + + "| 4| 5| 5.5| 5| ccc|\n" + + "+---+-------+-------+-------+-------+\n" + + "Total line number = 4\n"; + executor.executeAndCompare(statement, expected); + + statement = "select * from test1 left join test2 using key where key > 2;"; + expected = + "ResultSets:\n" + + "+---+-------+-------+-------+-------+\n" + + "|key|test1.a|test1.b|test2.a|test2.b|\n" + + "+---+-------+-------+-------+-------+\n" + + "| 3| 4| 4.5| null| null|\n" + + "| 4| 5| 5.5| 5| ccc|\n" + + "+---+-------+-------+-------+-------+\n" + + "Total line number = 2\n"; + executor.executeAndCompare(statement, expected); + + statement = "select * from test1 right join test2 using key;"; + expected = + "ResultSets:\n" + + "+---+-------+-------+-------+-------+\n" + + "|key|test1.a|test1.b|test2.a|test2.b|\n" + + "+---+-------+-------+-------+-------+\n" + + "| 0| 1| 1.5| 1| aaa|\n" + + "| 2| null| null| 3| bbb|\n" + + "| 4| 5| 5.5| 5| ccc|\n" + + "| 6| null| null| 7| ddd|\n" + + "+---+-------+-------+-------+-------+\n" + + "Total line number = 4\n"; + executor.executeAndCompare(statement, expected); + + statement = "select * from test1 full join test2 using key;"; + expected = + "ResultSets:\n" + + "+---+-------+-------+-------+-------+\n" + + "|key|test1.a|test1.b|test2.a|test2.b|\n" + + "+---+-------+-------+-------+-------+\n" + + "| 0| 1| 1.5| 1| aaa|\n" + + "| 1| 2| 2.5| null| null|\n" + + "| 2| null| null| 3| bbb|\n" + + "| 3| 4| 4.5| null| null|\n" + + "| 4| 5| 5.5| 5| ccc|\n" + + "| 6| null| null| 7| ddd|\n" + + "+---+-------+-------+-------+-------+\n" + + "Total line number = 6\n"; + executor.executeAndCompare(statement, expected); + + statement = "select * from test1 full join test2 using key where key < 2 or key > 4;"; + expected = + "ResultSets:\n" + + "+---+-------+-------+-------+-------+\n" + + "|key|test1.a|test1.b|test2.a|test2.b|\n" + + "+---+-------+-------+-------+-------+\n" + + "| 0| 1| 1.5| 1| aaa|\n" + + "| 1| 2| 2.5| null| null|\n" + + "| 6| null| null| 7| ddd|\n" + + "+---+-------+-------+-------+-------+\n" + + "Total line number = 3\n"; + executor.executeAndCompare(statement, expected); + } + @Test public void testMultiJoin() { String insert = @@ -9213,4 +9305,28 @@ public void testTransformKeyColumn() { + "Total line number = 2\n"; executor.executeAndCompare(statement, expected); } + + @Test + public void testExtract() { + String insert = + "insert into t(key, a) values (0, 1700000000000), (1, 1705000000000), (2, 1710000000000), (3, 1715000000000), (4, 1720000000000);"; + executor.execute(insert); + + String statement = + "select extract(a, \"year\") as year, extract(a, \"month\") as month, extract(a, \"day\") as day, " + + "extract(a, \"hour\") as hour, extract(a, \"minute\") as minute, extract(a, \"second\") as second from t;"; + String expected = + "ResultSets:\n" + + "+---+----+-----+---+----+------+------+\n" + + "|key|year|month|day|hour|minute|second|\n" + + "+---+----+-----+---+----+------+------+\n" + + "| 0|2023| 11| 14| 22| 13| 20|\n" + + "| 1|2024| 1| 11| 19| 6| 40|\n" + + "| 2|2024| 3| 9| 16| 0| 0|\n" + + "| 3|2024| 5| 6| 12| 53| 20|\n" + + "| 4|2024| 7| 3| 9| 46| 40|\n" + + "+---+----+-----+---+----+------+------+\n" + + "Total line number = 5\n"; + executor.executeAndCompare(statement, expected); + } } From 5ae24efed9bb6eea7ee36f264d5916b4fae0e9ea Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Sat, 23 Nov 2024 20:53:27 +0800 Subject: [PATCH 26/33] fix(sql): fix sum/avg with null values (#502) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 计算 sum 和 avg 时,如果该列全为 null,均返回 null, count仍为0 修正ImportFileIT --- .github/scripts/test/cli/test_infile.sh | 2 +- .github/scripts/test/cli/test_infile_macos.sh | 2 +- .../memory/execute/utils/ExprUtils.java | 88 ++++++++++++++----- .../engine/shared/function/system/Avg.java | 4 +- .../engine/shared/function/system/Sum.java | 7 ++ .../function/system/utils/ValueUtils.java | 3 + .../integration/client/ImportFileIT.java | 6 +- .../integration/func/session/SessionIT.java | 85 +++++++----------- .../integration/func/sql/SQLSessionIT.java | 72 ++++++++++++--- 9 files changed, 175 insertions(+), 94 deletions(-) diff --git a/.github/scripts/test/cli/test_infile.sh b/.github/scripts/test/cli/test_infile.sh index 1d85857026..784cc3299d 100644 --- a/.github/scripts/test/cli/test_infile.sh +++ b/.github/scripts/test/cli/test_infile.sh @@ -32,6 +32,6 @@ bash -c "cat 'test/src/test/resources/fileReadAndWrite/csv/test.csv' > 'test/src bash -c "sed -i '1ikey,d m,b,[c],a' 'test/src/test/resources/fileReadAndWrite/csv/test1'" -COMMAND1='LOAD DATA FROM INFILE "'"test/src/test/resources/fileReadAndWrite/csv/test1"'" AS CSV INTO t1;' +COMMAND1='LOAD DATA FROM INFILE "'"test/src/test/resources/fileReadAndWrite/csv/test1"'" AS CSV INTO t1 AT 10;' bash -c "echo '$COMMAND1' | xargs -0 -t -i ${SCRIPT_COMMAND}" diff --git a/.github/scripts/test/cli/test_infile_macos.sh b/.github/scripts/test/cli/test_infile_macos.sh index 2168df4a31..5a5122b7b6 100644 --- a/.github/scripts/test/cli/test_infile_macos.sh +++ b/.github/scripts/test/cli/test_infile_macos.sh @@ -28,4 +28,4 @@ sh -c "cat test/src/test/resources/fileReadAndWrite/csv/test.csv > test/src/test sh -c "sed -i '' '1s/^/key,d m,b,[c],a\n/' test/src/test/resources/fileReadAndWrite/csv/test1" -sh -c "echo 'LOAD DATA FROM INFILE "'"test/src/test/resources/fileReadAndWrite/csv/test1"'" AS CSV INTO t1;' | xargs -0 -t -I F sh client/target/iginx-client-$1/sbin/start_cli.sh -e 'F'" +sh -c "echo 'LOAD DATA FROM INFILE "'"test/src/test/resources/fileReadAndWrite/csv/test1"'" AS CSV INTO t1 AT 10;' | xargs -0 -t -I F sh client/target/iginx-client-$1/sbin/start_cli.sh -e 'F'" diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java index 7bb627b4c4..6c2b2c2ebb 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/physical/memory/execute/utils/ExprUtils.java @@ -33,6 +33,7 @@ import cn.edu.tsinghua.iginx.engine.shared.function.manager.FunctionManager; import cn.edu.tsinghua.iginx.engine.shared.function.system.utils.ValueUtils; import cn.edu.tsinghua.iginx.engine.shared.operator.filter.Filter; +import cn.edu.tsinghua.iginx.thrift.DataType; import cn.edu.tsinghua.iginx.utils.DataTypeUtils; import java.security.Key; import java.util.ArrayList; @@ -101,7 +102,7 @@ private static Value calculateBaseExpr(Row row, BaseExpression baseExpr) { if (index == -1) { return null; } - return new Value(row.getValues()[index]); + return new Value(row.getType(index), row.getValues()[index]); } private static Value calculateFuncExpr(Row row, FuncExpression funcExpr) @@ -271,75 +272,120 @@ private static Value calculateCaseWhenExpr(Row row, CaseWhenExpression caseWhenE } private static Value calculatePlus(Value left, Value right) { + boolean isNull = left.isNull() || right.isNull(); switch (left.getDataType()) { case INTEGER: - return new Value(left.getIntV() + right.getIntV()); + return isNull + ? new Value(DataType.INTEGER, null) + : new Value(left.getIntV() + right.getIntV()); case LONG: - return new Value(left.getLongV() + right.getLongV()); + return isNull + ? new Value(DataType.LONG, null) + : new Value(left.getLongV() + right.getLongV()); case FLOAT: - return new Value(left.getFloatV() + right.getFloatV()); + return isNull + ? new Value(DataType.FLOAT, null) + : new Value(left.getFloatV() + right.getFloatV()); case DOUBLE: - return new Value(left.getDoubleV() + right.getDoubleV()); + return isNull + ? new Value(DataType.DOUBLE, null) + : new Value(left.getDoubleV() + right.getDoubleV()); default: return null; } } private static Value calculateMinus(Value left, Value right) { + boolean isNull = left.isNull() || right.isNull(); switch (left.getDataType()) { case INTEGER: - return new Value(left.getIntV() - right.getIntV()); + return isNull + ? new Value(DataType.INTEGER, null) + : new Value(left.getIntV() - right.getIntV()); case LONG: - return new Value(left.getLongV() - right.getLongV()); + return isNull + ? new Value(DataType.LONG, null) + : new Value(left.getLongV() - right.getLongV()); case FLOAT: - return new Value(left.getFloatV() - right.getFloatV()); + return isNull + ? new Value(DataType.FLOAT, null) + : new Value(left.getFloatV() - right.getFloatV()); case DOUBLE: - return new Value(left.getDoubleV() - right.getDoubleV()); + return isNull + ? new Value(DataType.DOUBLE, null) + : new Value(left.getDoubleV() - right.getDoubleV()); default: return null; } } private static Value calculateStar(Value left, Value right) { + boolean isNull = left.isNull() || right.isNull(); switch (left.getDataType()) { case INTEGER: - return new Value(left.getIntV() * right.getIntV()); + return isNull + ? new Value(DataType.INTEGER, null) + : new Value(left.getIntV() * right.getIntV()); case LONG: - return new Value(left.getLongV() * right.getLongV()); + return isNull + ? new Value(DataType.LONG, null) + : new Value(left.getLongV() * right.getLongV()); case FLOAT: - return new Value(left.getFloatV() * right.getFloatV()); + return isNull + ? new Value(DataType.FLOAT, null) + : new Value(left.getFloatV() * right.getFloatV()); case DOUBLE: - return new Value(left.getDoubleV() * right.getDoubleV()); + return isNull + ? new Value(DataType.DOUBLE, null) + : new Value(left.getDoubleV() * right.getDoubleV()); default: return null; } } private static Value calculateDiv(Value left, Value right) { + boolean isNull = left.isNull() || right.isNull(); switch (left.getDataType()) { case INTEGER: - return new Value((double) left.getIntV() / (double) right.getIntV()); + return isNull + ? new Value(DataType.INTEGER, null) + : new Value((double) left.getIntV() / (double) right.getIntV()); case LONG: - return new Value((double) left.getLongV() / (double) right.getLongV()); + return isNull + ? new Value(DataType.LONG, null) + : new Value((double) left.getLongV() / (double) right.getLongV()); case FLOAT: - return new Value(left.getFloatV() / right.getFloatV()); + return isNull + ? new Value(DataType.FLOAT, null) + : new Value(left.getFloatV() / right.getFloatV()); case DOUBLE: - return new Value(left.getDoubleV() / right.getDoubleV()); + return isNull + ? new Value(DataType.DOUBLE, null) + : new Value(left.getDoubleV() / right.getDoubleV()); default: return null; } } private static Value calculateMod(Value left, Value right) { + boolean isNull = left.isNull() || right.isNull(); switch (left.getDataType()) { case INTEGER: - return new Value(left.getIntV() % right.getIntV()); + return isNull + ? new Value(DataType.INTEGER, null) + : new Value(left.getIntV() % right.getIntV()); case LONG: - return new Value(left.getLongV() % right.getLongV()); + return isNull + ? new Value(DataType.LONG, null) + : new Value(left.getLongV() % right.getLongV()); case FLOAT: - return new Value(left.getFloatV() % right.getFloatV()); + return isNull + ? new Value(DataType.FLOAT, null) + : new Value(left.getFloatV() % right.getFloatV()); case DOUBLE: - return new Value(left.getDoubleV() % right.getDoubleV()); + return isNull + ? new Value(DataType.DOUBLE, null) + : new Value(left.getDoubleV() % right.getDoubleV()); default: return null; } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Avg.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Avg.java index f794888c02..46fa2c8e96 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Avg.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Avg.java @@ -99,7 +99,9 @@ public Row transform(Table table, FunctionParams params) throws Exception { } Object[] targetValues = new Object[targetFields.size()]; for (int i = 0; i < targetValues.length; i++) { - targetValues[i] = targetSums[i] / counts[i]; + if (counts[i] != 0) { + targetValues[i] = targetSums[i] / counts[i]; + } } return new Row(new Header(targetFields), targetValues); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Sum.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Sum.java index a248f52003..71d217e280 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Sum.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/Sum.java @@ -70,6 +70,7 @@ public Row transform(Table table, FunctionParams params) throws Exception { } Object[] targetValues = new Object[targetFields.size()]; + long[] counts = new long[targetFields.size()]; for (int i = 0; i < targetFields.size(); i++) { Field targetField = targetFields.get(i); if (targetField.getType() == DataType.LONG) { @@ -102,6 +103,12 @@ public Row transform(Table table, FunctionParams params) throws Exception { throw new IllegalStateException( "Unexpected field type: " + fields.get(index).getType().toString()); } + counts[i]++; + } + } + for (int i = 0; i < targetValues.length; i++) { + if (counts[i] == 0) { + targetValues[i] = null; } } return new Row(new Header(targetFields), targetValues); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java index 59ecd6d2a6..d8f967b491 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/system/utils/ValueUtils.java @@ -47,6 +47,9 @@ public static boolean isNumericType(DataType dataType) { } public static Value transformToDouble(Value value) { + if (value.isNull()) { + return new Value(DataType.DOUBLE, null); + } DataType dataType = value.getDataType(); double dVal; switch (dataType) { diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ImportFileIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ImportFileIT.java index ea4dcbd3cb..99391e3b07 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ImportFileIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/client/ImportFileIT.java @@ -67,11 +67,11 @@ public void testLoadData() { + "Total line number = 5\n"; executor.executeAndCompare(query, expected); - String query1 = "SELECT * FROM t1;"; - String expected1 = + query = "SELECT * FROM t1;"; + expected = "ResultSets:\n" + "+---+------+----+----+------+\n" - + "|key|t2._c_|t2.a|t2.b|t2.d_m|\n" + + "|key|t1._c_|t1.a|t1.b|t1.d_m|\n" + "+---+------+----+----+------+\n" + "| 10| true| aaa| 0.5| 0.0|\n" + "| 11| false| bbb| 1.5| 1.0|\n" diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java index 48ebedf244..a73b442409 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/session/SessionIT.java @@ -23,7 +23,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import cn.edu.tsinghua.iginx.exception.SessionException; @@ -533,8 +532,7 @@ public void sessionTest() throws SessionException, InterruptedException { if (dsStartKey > delEndKey || dsEndKey < delStartKey) { assertEquals(delDsAvg + pathNum, changeResultToDouble(dsResult.get(j)), delta); } else if (dsStartKey >= delStartKey && dsEndKey < delEndKey) { - // assertNull(dsResult.get(j)); - assertTrue(Double.isNaN((Double) dsResult.get(j))); + assertNull(dsResult.get(j)); } else if (dsStartKey < delStartKey) { assertEquals( (dsStartKey + delStartKey - 1) / 2.0 + pathNum, @@ -613,18 +611,12 @@ public void sessionTest() throws SessionException, InterruptedException { session.aggregateQuery(delDataInColumnPaths, START_KEY, END_KEY + 1, AggregateType.AVG); List delDataAvgResPaths = delDataAvgSet.getPaths(); Object[] delDataAvgResult = delDataAvgSet.getValues(); - assertEquals(dataInColumnLen, delDataAvgResPaths.size()); - assertEquals(dataInColumnLen, delDataAvgSet.getValues().length); - for (int i = 0; i < dataInColumnLen; i++) { + assertEquals(dataInColumnLen - deleteDataInColumnLen, delDataAvgResPaths.size()); + assertEquals(dataInColumnLen - deleteDataInColumnLen, delDataAvgSet.getValues().length); + for (int i = 0; i < dataInColumnLen - deleteDataInColumnLen; i++) { int pathNum = getPathNum(delDataAvgResPaths.get(i)); assertNotEquals(pathNum, -1); - if (pathNum < currPath + deleteDataInColumnLen) { // Here is the removed rows - // assertEquals("null", new String((byte[]) - // delDataAvgResult[i])); - assertTrue(Double.isNaN((Double) delDataAvgResult[i])); - } else { - assertEquals((START_KEY + END_KEY) / 2.0 + pathNum, delDataAvgResult[i]); - } + assertEquals((START_KEY + END_KEY) / 2.0 + pathNum, delDataAvgResult[i]); } // Test downsample function for the delete @@ -645,12 +637,7 @@ public void sessionTest() throws SessionException, InterruptedException { double avg = (dsKey + maxNum) / 2.0; int pathNum = getPathNum(dsDelDataResPaths.get(j)); assertNotEquals(pathNum, -1); - if (pathNum < currPath + deleteDataInColumnLen) { // Here is the removed rows - // assertNull(dsResult.get(j)); - assertTrue(Double.isNaN((Double) dsResult.get(j))); - } else { - assertEquals(avg + pathNum, changeResultToDouble(dsResult.get(j)), delta); - } + assertEquals(avg + pathNum, changeResultToDouble(dsResult.get(j)), delta); } } currPath += dataInColumnLen; @@ -1015,41 +1002,33 @@ public void sessionTest() throws SessionException, InterruptedException { session.aggregateQuery(dTDeleteAggrPaths, START_KEY, END_KEY + 1, AggregateType.AVG); List dtDelColAvgPaths = dtDelColAvgDataSet.getPaths(); Object[] dtDelColAvgResult = dtDelColAvgDataSet.getValues(); - assertEquals(4, dtDelColAvgPaths.size()); - assertEquals(4, dtDelColAvgDataSet.getValues().length); - for (int i = 0; i < 4; i++) { + assertEquals(3, dtDelColAvgPaths.size()); + assertEquals(3, dtDelColAvgDataSet.getValues().length); + for (int i = 0; i < 3; i++) { int currPathPos = getPathNum(dtDelColAvgPaths.get(i)) - currPath; - if (currPathPos < dtDelColumnNum) { - // assertEquals("null", new String((byte[]) - // dtDelColAvgResult[i])); - assertTrue(Double.isNaN((Double) dtDelColAvgResult[i])); - } else { - switch (currPathPos) { - case 1: - assertEquals( - (START_KEY + END_KEY) / 2.0 + 1, - changeResultToDouble(dtDelColAvgResult[i]), - delta); - break; - case 2: - assertEquals((START_KEY + END_KEY) * 500.0 + 2000, dtDelColAvgResult[i]); - break; - case 3: - assertEquals( - (START_KEY + END_KEY) / 2.0 + 3 + 0.01, - changeResultToDouble(dtDelColAvgResult[i]), - delta * 10000); - break; - case 4: - assertEquals( - (START_KEY + END_KEY) * 999 / 2.0 + 4.01 * 999, - changeResultToDouble(dtDelColAvgResult[i]), - delta * 10000); - break; - default: - fail(); - break; - } + switch (currPathPos) { + case 1: + assertEquals( + (START_KEY + END_KEY) / 2.0 + 1, changeResultToDouble(dtDelColAvgResult[i]), delta); + break; + case 2: + assertEquals((START_KEY + END_KEY) * 500.0 + 2000, dtDelColAvgResult[i]); + break; + case 3: + assertEquals( + (START_KEY + END_KEY) / 2.0 + 3 + 0.01, + changeResultToDouble(dtDelColAvgResult[i]), + delta * 10000); + break; + case 4: + assertEquals( + (START_KEY + END_KEY) * 999 / 2.0 + 4.01 * 999, + changeResultToDouble(dtDelColAvgResult[i]), + delta * 10000); + break; + default: + fail(); + break; } } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java index 538d2be3f2..e7b226b11f 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/sql/SQLSessionIT.java @@ -1636,6 +1636,54 @@ public void testAggregateQueryWithArithExpr() { } } + @Test + public void testAggregateQueryWithNullValues() { + String insert = "insert into test(key, a) values (0, 1), (1, 2), (2, 3);"; + executor.execute(insert); + insert = "insert into test(key, b) values (3, 1), (4, 2), (5, 3);"; + executor.execute(insert); + + String query = "select * from test;"; + String expected = + "ResultSets:\n" + + "+---+------+------+\n" + + "|key|test.a|test.b|\n" + + "+---+------+------+\n" + + "| 0| 1| null|\n" + + "| 1| 2| null|\n" + + "| 2| 3| null|\n" + + "| 3| null| 1|\n" + + "| 4| null| 2|\n" + + "| 5| null| 3|\n" + + "+---+------+------+\n" + + "Total line number = 6\n"; + executor.executeAndCompare(query, expected); + + query = "select avg(*), sum(*), count(*) from test where key < 3;"; + // key<3时,avg(test.b)和sum(test.b)的值是null + expected = + "ResultSets:\n" + + "+-----------+-----------+-------------+-------------+\n" + + "|avg(test.a)|sum(test.a)|count(test.a)|count(test.b)|\n" + + "+-----------+-----------+-------------+-------------+\n" + + "| 2.0| 6| 3| 0|\n" + + "+-----------+-----------+-------------+-------------+\n" + + "Total line number = 1\n"; + executor.executeAndCompare(query, expected); + + query = "select avg(*), sum(*), count(*) from test where key > 2;"; + // key>2时,avg(test.a)和sum(test.a)的值是null + expected = + "ResultSets:\n" + + "+-----------+-----------+-------------+-------------+\n" + + "|avg(test.b)|sum(test.b)|count(test.a)|count(test.b)|\n" + + "+-----------+-----------+-------------+-------------+\n" + + "| 2.0| 6| 0| 3|\n" + + "+-----------+-----------+-------------+-------------+\n" + + "Total line number = 1\n"; + executor.executeAndCompare(query, expected); + } + @Test public void testDownSampleQuery() { String statement = "SELECT %s(s1), %s(s4) FROM us.d1 OVER WINDOW (size 100 IN (0, 1000));"; @@ -4560,10 +4608,10 @@ public void testSelectSubQuery() { + "+---+--------+-------------+\n" + "|key|test.a.a|sum(test.b.a)|\n" + "+---+--------+-------------+\n" - + "| 1| 3| 0|\n" + + "| 1| 3| null|\n" + "| 2| 1| 10|\n" + "| 3| 2| 6|\n" - + "| 4| 3| 0|\n" + + "| 4| 3| null|\n" + "| 5| 1| 10|\n" + "| 6| 2| 6|\n" + "+---+--------+-------------+\n" @@ -4576,10 +4624,10 @@ public void testSelectSubQuery() { + "+---+--------+------------------------+\n" + "|key|test.a.a|test.a.a × sum(test.b.a)|\n" + "+---+--------+------------------------+\n" - + "| 1| 3| 0|\n" + + "| 1| 3| null|\n" + "| 2| 1| 10|\n" + "| 3| 2| 12|\n" - + "| 4| 3| 0|\n" + + "| 4| 3| null|\n" + "| 5| 1| 10|\n" + "| 6| 2| 12|\n" + "+---+--------+------------------------+\n" @@ -4608,10 +4656,10 @@ public void testSelectSubQuery() { + "+---+--------+-------------+\n" + "|key|test.a.a|avg(test.b.a)|\n" + "+---+--------+-------------+\n" - + "| 1| 3| NaN|\n" + + "| 1| 3| null|\n" + "| 2| 1| 2.5|\n" + "| 3| 2| 3.0|\n" - + "| 4| 3| NaN|\n" + + "| 4| 3| null|\n" + "| 5| 1| 2.5|\n" + "| 6| 2| 3.0|\n" + "+---+--------+-------------+\n" @@ -4682,10 +4730,10 @@ public void testSelectSubQuery() { + "+---+--------+-----------------+\n" + "|key|test.a.a|1 + avg(test.b.a)|\n" + "+---+--------+-----------------+\n" - + "| 1| 3| NaN|\n" + + "| 1| 3| null|\n" + "| 2| 1| 3.5|\n" + "| 3| 2| 4.0|\n" - + "| 4| 3| NaN|\n" + + "| 4| 3| null|\n" + "| 5| 1| 3.5|\n" + "| 6| 2| 4.0|\n" + "+---+--------+-----------------+\n" @@ -4714,14 +4762,12 @@ public void testSelectSubQuery() { + "+---+------------------------+\n" + "|key|test.a.a ÷ avg(test.b.a)|\n" + "+---+------------------------+\n" - + "| 1| NaN|\n" + "| 2| 0.4|\n" + "| 3| 0.6666666666666666|\n" - + "| 4| NaN|\n" + "| 5| 0.4|\n" + "| 6| 0.6666666666666666|\n" + "+---+------------------------+\n" - + "Total line number = 6\n"; + + "Total line number = 4\n"; executor.executeAndCompare(statement, expected); statement = "SELECT a / (1 + (SELECT AVG(a) FROM test.b)) FROM test.a;"; @@ -4747,14 +4793,12 @@ public void testSelectSubQuery() { + "+---+------------------------------+\n" + "|key|test.a.a ÷ (1 + avg(test.b.a))|\n" + "+---+------------------------------+\n" - + "| 1| NaN|\n" + "| 2| 0.2857142857142857|\n" + "| 3| 0.5|\n" - + "| 4| NaN|\n" + "| 5| 0.2857142857142857|\n" + "| 6| 0.5|\n" + "+---+------------------------------+\n" - + "Total line number = 6\n"; + + "Total line number = 4\n"; executor.executeAndCompare(statement, expected); statement = From f081537718df7b2da9a26f3324e5cf099ca4f2b5 Mon Sep 17 00:00:00 2001 From: ZM <12236590+shinyano@users.noreply.github.com> Date: Sat, 23 Nov 2024 21:30:46 +0800 Subject: [PATCH 27/33] fix(core): get real local ip (#485) If ip is set to 0.0.0.0, find the real local ip. --- .github/actions/confWriter/action.yml | 39 +++++++++ .github/actions/dbConfWriter/action.yml | 24 ++++++ .github/actions/service/portMapper/action.yml | 66 +++++++++++++++ .github/actions/service/zookeeper/action.yml | 17 ++-- .github/actions/setup/zookeeper/action.yml | 12 ++- .github/actions/tpchDataWriter/action.yml | 31 ++++++- .github/actions/zookeeperRunner/action.yml | 9 +++ .github/workflows/tpc-h-pushdown.yml | 33 +++++--- .github/workflows/tpc-h.yml | 33 +++++--- .../cn/edu/tsinghua/iginx/IginxWorker.java | 27 +++++-- .../cn/edu/tsinghua/iginx/conf/Config.java | 9 ++- .../function/manager/FunctionManager.java | 25 +++--- .../metadata/entity/TransformTaskMeta.java | 56 ++++++++++--- .../iginx/transform/driver/PemjaDriver.java | 2 +- .../iginx/transform/driver/PythonDriver.java | 2 +- .../session/SessionExecuteSqlResult.java | 16 +++- .../edu/tsinghua/iginx/utils/HostUtils.java | 81 ++++++++++++++++++- .../tsinghua/iginx/utils/HostUtilsTest.java | 45 +++++++++++ .../integration/func/udf/UDFTestTools.java | 4 +- .../integration/other/HostUtilsTest.java | 69 ++++++++++++++++ .../iginx/integration/other/UDFPathIT.java | 47 ++++++----- .../integration/tpch/TPCHDataGeneratorIT.java | 6 +- test/src/test/resources/testConfig.properties | 4 +- thrift/src/main/thrift/rpc.thrift | 7 +- 24 files changed, 565 insertions(+), 99 deletions(-) create mode 100644 .github/actions/service/portMapper/action.yml create mode 100644 shared/src/test/java/cn/edu/tsinghua/iginx/utils/HostUtilsTest.java create mode 100644 test/src/test/java/cn/edu/tsinghua/iginx/integration/other/HostUtilsTest.java diff --git a/.github/actions/confWriter/action.yml b/.github/actions/confWriter/action.yml index 7b10225d79..e09cb53185 100644 --- a/.github/actions/confWriter/action.yml +++ b/.github/actions/confWriter/action.yml @@ -17,6 +17,10 @@ inputs: description: "make the storage engine read-only" required: false default: "false" + Has-Data: + description: "does the storage engine has data" + required: false + default: "false" Push-Down: description: "make the IGinX push down filter" required: false @@ -29,6 +33,10 @@ inputs: description: "the path of IGinX root directory" required: false default: "${GITHUB_WORKSPACE}" + zookeeper-port: + description: "zookeeper service port" + required: false + default: "2181" runs: using: "composite" # Mandatory parameter @@ -74,6 +82,21 @@ runs: run: | echo "${{ inputs.DB-name }}" > ${{ inputs.Root-Dir-Path }}/test/src/test/resources/DBName.txt + - if: inputs.zookeeper-port!='2181' + name: Change Zookeeper Port + shell: bash + run: | + if [ "$RUNNER_OS" == "Linux" ]; then + sudo sed -i 's/zookeeperConnectionString=127.0.0.1:2181/zookeeperConnectionString=127.0.0.1:${{ inputs.zookeeper-port }}/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + elif [ "$RUNNER_OS" == "Windows" ]; then + sed -i 's/zookeeperConnectionString=127.0.0.1:2181/zookeeperConnectionString=127.0.0.1:${{ inputs.zookeeper-port }}/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + elif [ "$RUNNER_OS" == "macOS" ]; then + sudo sed -i '' 's/zookeeperConnectionString=127.0.0.1:2181/zookeeperConnectionString=127.0.0.1:${{ inputs.zookeeper-port }}/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + else + echo "$RUNNER_OS is not supported" + exit 1 + fi + - name: Change UDF conf shell: bash run: | @@ -103,6 +126,22 @@ runs: echo "$RUNNER_OS is not supported" exit 1 fi + + - if: inputs.Has-Data=='true' + name: Set Has-Data + shell: bash + run: | + if [ "$RUNNER_OS" == "Linux" ]; then + sudo sed -i 's/has_data=false/has_data=true/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + elif [ "$RUNNER_OS" == "Windows" ]; then + sed -i 's/has_data=false/has_data=true/g' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + elif [ "$RUNNER_OS" == "macOS" ]; then + sudo sed -i '' 's/has_data=false/has_data=true/' ${{ inputs.Root-Dir-Path }}/core/target/iginx-core-${VERSION}/conf/config.properties + else + echo "$RUNNER_OS is not supported" + exit 1 + fi + - if: inputs.Push-Down=='true' name: Change push_down shell: bash diff --git a/.github/actions/dbConfWriter/action.yml b/.github/actions/dbConfWriter/action.yml index 7c863cbed8..40b225b61f 100644 --- a/.github/actions/dbConfWriter/action.yml +++ b/.github/actions/dbConfWriter/action.yml @@ -5,6 +5,10 @@ inputs: description: "DB name" required: false default: IoTDB12 + DB-port: + description: "DB port" + required: false + default: "0" Root-Dir-Path: description: "the path of IGinX root directory" required: false @@ -97,3 +101,23 @@ runs: with: paths: ${{ inputs.Root-Dir-Path }}/conf/config.properties statements: s|^#storageEngineList=127.0.0.1#3306#relational#engine=mysql#username=root#password=mysql#has_data=false#meta_properties_path=your-meta-properties-path|storageEngineList=127.0.0.1#3306#relational#engine=mysql#username=root#has_data=false#meta_properties_path=${{ steps.mysql-properties.outputs.path }}|g + + # use regex + - if: inputs.DB-port!='0' + name: Change db port + shell: bash + run: | + if [ "$RUNNER_OS" == "Linux" ]; then + sudo sed -i -E "s/^(storageEngineList=127\.0\.0\.1#)[0-9]+(#.*)/\1${{ inputs.DB-port }}\2/" ${{ inputs.Root-Dir-Path }}/conf/config.properties + sudo sed -i -E "s/(mongodb:\/\/127\.0\.0\.1:)[0-9]+(\/)/\1${{ inputs.DB-port }}\2/" ${{ inputs.Root-Dir-Path }}/conf/config.properties + elif [ "$RUNNER_OS" == "Windows" ]; then + sed -i -E "s/^(storageEngineList=127\.0\.0\.1#)[0-9]+(#.*)/\1${{ inputs.DB-port }}\2/" ${{ inputs.Root-Dir-Path }}/conf/config.properties + sed -i -E "s/(mongodb:\/\/127\.0\.0\.1:)[0-9]+(\/)/\1${{ inputs.DB-port }}\2/" ${{ inputs.Root-Dir-Path }}/conf/config.properties + elif [ "$RUNNER_OS" == "macOS" ]; then + sudo sed -i '' -E "s/^(storageEngineList=127\.0\.0\.1#)[0-9]+(#.*)/\1${{ inputs.DB-port }}\2/" ${{ inputs.Root-Dir-Path }}/conf/config.properties + sudo sed -i '' -E "s/(mongodb:\/\/127\.0\.0\.1:)[0-9]+(\/)/\1${{ inputs.DB-port }}\2/" ${{ inputs.Root-Dir-Path }}/conf/config.properties + else + echo "$RUNNER_OS is not supported" + exit 1 + fi + cat ${{ inputs.Root-Dir-Path }}/conf/config.properties diff --git a/.github/actions/service/portMapper/action.yml b/.github/actions/service/portMapper/action.yml new file mode 100644 index 0000000000..cca4b75848 --- /dev/null +++ b/.github/actions/service/portMapper/action.yml @@ -0,0 +1,66 @@ +name: "Database Ports Mapper" +description: "Map database name to corresponding ports" +inputs: + DB-name: + description: "Name of the database to get ports for" + required: true + +outputs: + port1: + description: "port1" + value: ${{ steps.get-ports.outputs.port1 }} + port2: + description: "port2" + value: ${{ steps.get-ports.outputs.port2 }} + port3: + description: "port3" + value: ${{ steps.get-ports.outputs.port3 }} + +runs: + using: "composite" + steps: + - id: get-ports + shell: bash + run: | + case "${{ inputs.DB-name }}" in + "InfluxDB") + echo "port1=8086" >> $GITHUB_OUTPUT + echo "port2=8087" >> $GITHUB_OUTPUT + echo "port3=8088" >> $GITHUB_OUTPUT + ;; + "IoTDB12") + echo "port1=6667" >> $GITHUB_OUTPUT + echo "port2=6668" >> $GITHUB_OUTPUT + echo "port3=6669" >> $GITHUB_OUTPUT + ;; + "FileSystem") + echo "port1=6667" >> $GITHUB_OUTPUT + echo "port2=6668" >> $GITHUB_OUTPUT + echo "port3=6669" >> $GITHUB_OUTPUT + ;; + "MySQL") + echo "port1=3306" >> $GITHUB_OUTPUT + echo "port2=3307" >> $GITHUB_OUTPUT + echo "port3=3308" >> $GITHUB_OUTPUT + ;; + "PostgreSQL") + echo "port1=5432" >> $GITHUB_OUTPUT + echo "port2=5433" >> $GITHUB_OUTPUT + echo "port3=5434" >> $GITHUB_OUTPUT + ;; + "MongoDB") + echo "port1=27017" >> $GITHUB_OUTPUT + echo "port2=27018" >> $GITHUB_OUTPUT + echo "port3=27019" >> $GITHUB_OUTPUT + ;; + "Redis") + echo "port1=6379" >> $GITHUB_OUTPUT + echo "port2=6380" >> $GITHUB_OUTPUT + echo "port3=6381" >> $GITHUB_OUTPUT + ;; + *) + echo "port1=0" >> $GITHUB_OUTPUT + echo "port2=0" >> $GITHUB_OUTPUT + echo "port3=0" >> $GITHUB_OUTPUT + ;; + esac diff --git a/.github/actions/service/zookeeper/action.yml b/.github/actions/service/zookeeper/action.yml index 1c820c8a7e..3bef27f25d 100644 --- a/.github/actions/service/zookeeper/action.yml +++ b/.github/actions/service/zookeeper/action.yml @@ -10,6 +10,10 @@ inputs: start: description: "whether to start" required: true + port: + description: "zk port" + required: false + default: "2181" runs: using: "composite" @@ -17,23 +21,24 @@ runs: - if: fromJSON(inputs.stop) name: Stop zookeeper shell: bash - working-directory: ${{ github.action_path }} - run: zkServer.sh --config conf stop + working-directory: ${{ runner.temp }}/zookeeper-${{ inputs.port }} + run: bin/zkServer.sh --config conf stop - if: fromJSON(inputs.clean) name: Clean zookeeper shell: bash - working-directory: ${{ github.action_path }} + working-directory: ${{ runner.temp }}/zookeeper-${{ inputs.port }} run: rm -rf data logs conf - if: fromJSON(inputs.start) name: Start zookeeper shell: bash - working-directory: ${{ github.action_path }} + working-directory: ${{ runner.temp }}/zookeeper-${{ inputs.port }} run: | mkdir -p conf echo "dataDir=data" > conf/zoo.cfg echo "dataLogDir=logs" >> conf/zoo.cfg - echo "clientPort=2181" >> conf/zoo.cfg + echo "clientPort=${{ inputs.port }}" >> conf/zoo.cfg + echo "admin.serverPort=$((${{ inputs.port }} + 10000))" >> conf/zoo.cfg - zkServer.sh --config conf start + bin/zkServer.sh --config conf start diff --git a/.github/actions/setup/zookeeper/action.yml b/.github/actions/setup/zookeeper/action.yml index b124b8b7e0..eeb6a74e8c 100644 --- a/.github/actions/setup/zookeeper/action.yml +++ b/.github/actions/setup/zookeeper/action.yml @@ -5,6 +5,10 @@ inputs: description: "zookeeper version" required: false default: "3.7.2" + port: + description: "zk port" + required: false + default: "2181" runs: using: "composite" @@ -32,10 +36,12 @@ runs: subdir: "apache-zookeeper-{version}-bin" ext: "tar.gz" - - name: Add zookeeper Bin to PATH + - name: Copy ZK to Port Dir shell: bash - working-directory: ${{ steps.base.outputs.tool-path }} - run: echo "$PWD/bin" >> $GITHUB_PATH + run: | + if [ ! -d "${{ runner.temp }}/zookeeper-${{ inputs.port }}" ]; then + cp -r "${{ steps.base.outputs.tool-path }}" "${{ runner.temp }}/zookeeper-${{ inputs.port }}" + fi - name: Save zookeeper Cache if: steps.restore.outputs.cache-hit != 'true' diff --git a/.github/actions/tpchDataWriter/action.yml b/.github/actions/tpchDataWriter/action.yml index 6f40bdd56b..0dd565aad6 100644 --- a/.github/actions/tpchDataWriter/action.yml +++ b/.github/actions/tpchDataWriter/action.yml @@ -9,10 +9,39 @@ inputs: runs: using: "composite" # Mandatory parameter steps: + - name: Start Old IGinX + shell: bash + run: | + cd IGinX/core/target/iginx-core-${VERSION} + pwd + export IGINX_HOME=$PWD + echo "IGinX home path: $IGINX_HOME" + cd .. + chmod +x iginx-core-${VERSION}/sbin/start_iginx.sh + nohup iginx-core-${VERSION}/sbin/start_iginx.sh > ../../iginx-${VERSION}.log 2>&1 & + + # two IGinXs are using different ZKs, we need to insert data & register UDFs in both nodes + - name: Insert Data and Register UDF in Old IGinX + shell: bash + run: | + cd IGinX + mvn test -q -Dtest=TPCHDataGeneratorIT -DfailIfNoTests=false -P-format + + - name: Show Old IGinX log + if: always() + shell: bash + run: cat IGinX/iginx-*.log + + - name: Stop Old IGinX + uses: ./.github/actions/iginxRunner + with: + version: ${VERSION} + if-stop: "true" + - name: Start New IGinX uses: ./.github/actions/iginxRunner - - name: Insert Data and Register UDF + - name: Insert Data and Register UDF in new IGinX shell: bash run: mvn test -q -Dtest=TPCHDataGeneratorIT -DfailIfNoTests=false -P-format diff --git a/.github/actions/zookeeperRunner/action.yml b/.github/actions/zookeeperRunner/action.yml index 6ac92e29b9..52939469c6 100644 --- a/.github/actions/zookeeperRunner/action.yml +++ b/.github/actions/zookeeperRunner/action.yml @@ -13,12 +13,18 @@ inputs: description: "to rerun the zookeeper" required: false default: "false" + port: + description: "zk port" + required: false + default: "2181" runs: using: "composite" # Mandatory parameter steps: - if: inputs.if-stop=='false' && inputs.if-rerun=='false' name: First Run ZooKeeper | Setup uses: ./.github/actions/setup/zookeeper + with: + port: ${{ inputs.port }} - if: inputs.if-stop=='false' && inputs.if-rerun=='false' name: First Run ZooKeeper @@ -27,6 +33,7 @@ runs: stop: false clean: false start: true + port: ${{ inputs.port }} - if: inputs.if-rerun=='true' name: ReRun ZooKeeper @@ -35,6 +42,7 @@ runs: stop: false clean: false start: true + port: ${{ inputs.port }} - if: inputs.if-stop=='true' name: Stop ZooKeeper @@ -43,3 +51,4 @@ runs: stop: true clean: true start: false + port: ${{ inputs.port }} diff --git a/.github/workflows/tpc-h-pushdown.yml b/.github/workflows/tpc-h-pushdown.yml index 478c490647..03a0820cb4 100644 --- a/.github/workflows/tpc-h-pushdown.yml +++ b/.github/workflows/tpc-h-pushdown.yml @@ -75,16 +75,13 @@ jobs: systeminfo | findstr /C:"Total Physical Memory" fi - - name: Download TPC-H Data - shell: bash - run: | - wget https://github.com/IGinX-THU/IGinX-resources/raw/main/resources/tpc.7z - sudo apt-get install p7zip-full - 7za x tpc.7z - ls tpc + - name: Run ZooKeeper1 + uses: ./.github/actions/zookeeperRunner - - name: Run ZooKeeper + - name: Run ZooKeeper2 uses: ./.github/actions/zookeeperRunner + with: + port: 2182 - name: Run DB uses: ./.github/actions/dbRunner @@ -101,18 +98,35 @@ jobs: cp -f test/src/test/resources/testConfig.properties IGinX/test/src/test/resources/testConfig.properties # 新增tpc-h查询测试时,旧版本代码中没有这些查询,需从新分支复制过去,添加完所有的tpc_h测试后可删除这些复制命令 + - name: Download TPC-H Data + shell: bash + run: | + wget https://github.com/IGinX-THU/IGinX-resources/raw/main/resources/tpc.7z + sudo apt-get install p7zip-full + 7za x tpc.7z + ls tpc + cp -r tpc IGinX/tpc + ls IGinX/tpc + + # let old iginx use second database service + - name: Find second port for DB + id: find-port + uses: ./.github/actions/service/portMapper + with: + DB-name: ${{ matrix.DB-name }} + - name: Rewrite DB Conf in Old IGinX uses: ./.github/actions/dbConfWriter with: DB-name: ${{ matrix.DB-name }} Root-Dir-Path: "IGinX" + DB-port: ${{ steps.find-port.outputs.port2 }} - name: Install Old IGinX with Maven shell: bash run: | cd IGinX mvn clean package -DskipTests -P-format -q - cp -rf ${GITHUB_WORKSPACE}/test/src/test/resources/tpch/udf/* core/target/iginx-core-${VERSION}/udf_funcs/python_scripts/ - name: Change Old IGinX Config uses: ./.github/actions/confWriter @@ -122,6 +136,7 @@ jobs: Set-Filter-Fragment-OFF: "true" Metadata: ${{ matrix.metadata }} Root-Dir-Path: "IGinX" + zookeeper-port: "2182" - name: Install New IGinX with Maven shell: bash diff --git a/.github/workflows/tpc-h.yml b/.github/workflows/tpc-h.yml index 4f30dd1ae0..3f0ef874c2 100644 --- a/.github/workflows/tpc-h.yml +++ b/.github/workflows/tpc-h.yml @@ -75,16 +75,13 @@ jobs: systeminfo | findstr /C:"Total Physical Memory" fi - - name: Download TPC-H Data - shell: bash - run: | - wget https://github.com/IGinX-THU/IGinX-resources/raw/main/resources/tpc.7z - sudo apt-get install p7zip-full - 7za x tpc.7z - ls tpc + - name: Run ZooKeeper1 + uses: ./.github/actions/zookeeperRunner - - name: Run ZooKeeper + - name: Run ZooKeeper2 uses: ./.github/actions/zookeeperRunner + with: + port: 2182 - name: Run DB uses: ./.github/actions/dbRunner @@ -101,18 +98,35 @@ jobs: cp -f test/src/test/resources/testConfig.properties IGinX/test/src/test/resources/testConfig.properties # 新增tpc-h查询测试时,旧版本代码中没有这些查询,需从新分支复制过去,添加完所有的tpc_h测试后可删除这些复制命令 + - name: Download TPC-H Data + shell: bash + run: | + wget https://github.com/IGinX-THU/IGinX-resources/raw/main/resources/tpc.7z + sudo apt-get install p7zip-full + 7za x tpc.7z + ls tpc + cp -r tpc IGinX/tpc + ls IGinX/tpc + + # let old iginx use second database service + - name: Find second port for DB + id: find-port + uses: ./.github/actions/service/portMapper + with: + DB-name: ${{ matrix.DB-name }} + - name: Rewrite DB Conf in Old IGinX uses: ./.github/actions/dbConfWriter with: DB-name: ${{ matrix.DB-name }} Root-Dir-Path: "IGinX" + DB-port: ${{ steps.find-port.outputs.port2 }} - name: Install Old IGinX with Maven shell: bash run: | cd IGinX mvn clean package -DskipTests -P-format -q - cp -rf ${GITHUB_WORKSPACE}/test/src/test/resources/tpch/udf/* core/target/iginx-core-${VERSION}/udf_funcs/python_scripts/ - name: Change Old IGinX Config uses: ./.github/actions/confWriter @@ -121,6 +135,7 @@ jobs: Set-Filter-Fragment-OFF: "true" Metadata: ${{ matrix.metadata }} Root-Dir-Path: "IGinX" + zookeeper-port: "2182" - name: Install New IGinX with Maven shell: bash diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java index 4f1b89f279..e8d9a5a71a 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java @@ -963,7 +963,8 @@ public Status registerTask(RegisterTaskReq req) { List transformTaskMetas = new ArrayList<>(); for (UDFClassPair p : pairs) { TransformTaskMeta transformTaskMeta = metaManager.getTransformTask(p.name.trim()); - if (transformTaskMeta != null && transformTaskMeta.getIpSet().contains(config.getIp())) { + if (transformTaskMeta != null + && transformTaskMeta.containsIpPort(config.getIp(), config.getPort())) { errorMsg = String.format("Function %s already exist", transformTaskMeta); LOGGER.error(errorMsg); return RpcUtils.FAILURE.setMessage(errorMsg); @@ -1034,15 +1035,24 @@ public Status registerTask(RegisterTaskReq req) { type = singleType ? req.getTypes().get(0) : req.getTypes().get(i); transformTaskMeta = transformTaskMetas.get(i); if (transformTaskMeta != null) { - transformTaskMeta.addIp(config.getIp()); + transformTaskMeta.addIpPort(config.getIp(), config.getPort()); metaManager.updateTransformTask(transformTaskMeta); } else { + LOGGER.debug( + "Registering {} task: {} as {} in {}; iginx: {}:{}", + type, + pairs.get(i).classPath, + pairs.get(i).name, + fileName, + config.getIp(), + config.getPort()); metaManager.addTransformTask( new TransformTaskMeta( pairs.get(i).name, pairs.get(i).classPath, fileName, - new HashSet<>(Collections.singletonList(config.getIp())), + config.getIp(), + config.getPort(), type)); } } @@ -1077,7 +1087,7 @@ public Status dropTask(DropTaskReq req) { return RpcUtils.FAILURE.setMessage(errorMsg); } - if (!transformTaskMeta.getIpSet().contains(config.getIp())) { + if (!transformTaskMeta.containsIpPort(config.getIp(), config.getPort())) { errorMsg = String.format("Function exists in node: %s", config.getIp()); LOGGER.error(errorMsg); return RpcUtils.FAILURE.setMessage(errorMsg); @@ -1131,15 +1141,18 @@ public Status dropTask(DropTaskReq req) { public GetRegisterTaskInfoResp getRegisterTaskInfo(GetRegisterTaskInfoReq req) { List taskMetaList = metaManager.getTransformTasks(); List taskInfoList = new ArrayList<>(); + List ipPortPairs; for (TransformTaskMeta taskMeta : taskMetaList) { - StringJoiner joiner = new StringJoiner(","); - taskMeta.getIpSet().forEach(joiner::add); + ipPortPairs = + taskMeta.getIpPortSet().stream() + .map(p -> new IpPortPair(p.getK(), p.getV())) + .collect(Collectors.toList()); RegisterTaskInfo taskInfo = new RegisterTaskInfo( taskMeta.getName(), taskMeta.getClassName(), taskMeta.getFileName(), - joiner.toString(), + ipPortPairs, taskMeta.getType()); taskInfoList.add(taskInfo); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java index 754f579702..b56fc488b4 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/conf/Config.java @@ -20,6 +20,7 @@ package cn.edu.tsinghua.iginx.conf; import cn.edu.tsinghua.iginx.thrift.TimePrecision; +import cn.edu.tsinghua.iginx.utils.HostUtils; import cn.edu.tsinghua.iginx.utils.TagKVUtils; import java.util.ArrayList; import java.util.List; @@ -237,8 +238,14 @@ public void setMaxTimeseriesLength(int maxTimeseriesLength) { this.maxTimeseriesLength = maxTimeseriesLength; } + /** 获取本机IP地址 */ public String getIp() { - return ip; + // 当设置监听端口为0.0.0.0,找本机IP地址 + if (!"0.0.0.0".equals(ip)) { + return ip; + } else { + return HostUtils.getRepresentativeIP(); + } } public void setIp(String ip) { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java index 41a90f8d55..ef40c2717f 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/shared/function/manager/FunctionManager.java @@ -49,9 +49,7 @@ import java.io.File; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.concurrent.BlockingQueue; @@ -110,6 +108,7 @@ private void initBasicUDFFunctions() { List metaList = new ArrayList<>(); List udfList = config.getUdfList(); for (String udf : udfList) { + LOGGER.debug("initing udf: {}", udf); String[] udfInfo = udf.split(","); if (udfInfo.length != 4) { LOGGER.error("udf info len must be 4."); @@ -133,25 +132,31 @@ private void initBasicUDFFunctions() { LOGGER.error("unknown udf type: {}", udfInfo[0]); continue; } + LOGGER.debug( + "adding udf : {}, {}, {}, {}, {}, {}", + udfInfo[1], + udfInfo[2], + udfInfo[3], + config.getIp(), + config.getPort(), + udfType); metaList.add( new TransformTaskMeta( - udfInfo[1], - udfInfo[2], - udfInfo[3], - new HashSet<>(Collections.singletonList(config.getIp())), - udfType)); + udfInfo[1], udfInfo[2], udfInfo[3], config.getIp(), config.getPort(), udfType)); } for (TransformTaskMeta meta : metaList) { + LOGGER.debug("loading udf meta:{}", meta); TransformTaskMeta taskMeta = metaManager.getTransformTask(meta.getName()); if (taskMeta == null) { metaManager.addTransformTask(meta); - } else if (!taskMeta.getIpSet().contains(config.getIp())) { - meta.addIp(config.getIp()); + } else if (!taskMeta.containsIpPort(config.getIp(), config.getPort())) { + meta.addIpPort(config.getIp(), config.getPort()); metaManager.updateTransformTask(meta); } if (!meta.getType().equals(UDFType.TRANSFORM)) { + LOGGER.debug("Loading UDF meta: {}", meta); loadUDF(meta.getName()); } } @@ -192,7 +197,7 @@ private Function loadUDF(String identifier) { if (taskMeta == null) { throw new IllegalArgumentException(String.format("UDF %s not registered", identifier)); } - if (!taskMeta.getIpSet().contains(config.getIp())) { + if (!taskMeta.containsIpPort(config.getIp(), config.getPort())) { throw new IllegalArgumentException( String.format("UDF %s not registered in node ip=%s", identifier, config.getIp())); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/TransformTaskMeta.java b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/TransformTaskMeta.java index 86784c3e23..b4d5d8570b 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/TransformTaskMeta.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/metadata/entity/TransformTaskMeta.java @@ -20,6 +20,9 @@ package cn.edu.tsinghua.iginx.metadata.entity; import cn.edu.tsinghua.iginx.thrift.UDFType; +import cn.edu.tsinghua.iginx.utils.Pair; +import java.util.Collections; +import java.util.HashSet; import java.util.Set; public class TransformTaskMeta { @@ -30,16 +33,30 @@ public class TransformTaskMeta { private String fileName; - private Set ipSet; + private Set> ipPortSet; private UDFType type; public TransformTaskMeta( - String name, String className, String fileName, Set ipSet, UDFType type) { + String name, String className, String fileName, String ip, int port, UDFType type) { + this( + name, + className, + fileName, + new HashSet<>(Collections.singleton(new Pair<>(ip, port))), + type); + } + + public TransformTaskMeta( + String name, + String className, + String fileName, + Set> ipPortSet, + UDFType type) { this.name = name; this.className = className; this.fileName = fileName; - this.ipSet = ipSet; + this.ipPortSet = ipPortSet; this.type = type; } @@ -67,16 +84,31 @@ public void setFileName(String fileName) { this.fileName = fileName; } - public Set getIpSet() { - return ipSet; + public Set> getIpPortSet() { + return ipPortSet; + } + + public void setIpPortSet(Set> ipPortSet) { + this.ipPortSet = ipPortSet; + } + + public void addIpPort(Pair ipPort) { + addIpPort(ipPort.k, ipPort.v); } - public void setIpSet(Set ipSet) { - this.ipSet = ipSet; + public void addIpPort(String ip, int port) { + if (!containsIpPort(ip, port)) { + this.ipPortSet.add(new Pair<>(ip, port)); + } } - public void addIp(String ip) { - this.ipSet.add(ip); + public boolean containsIpPort(String ip, int port) { + for (Pair pair : this.ipPortSet) { + if (ip.equals(pair.k) && port == pair.v) { + return true; + } + } + return false; } public UDFType getType() { @@ -88,7 +120,7 @@ public void setType(UDFType type) { } public TransformTaskMeta copy() { - return new TransformTaskMeta(name, className, fileName, ipSet, type); + return new TransformTaskMeta(name, className, fileName, ipPortSet, type); } @Override @@ -103,8 +135,8 @@ public String toString() { + ", fileName='" + fileName + '\'' - + ", ip='" - + ipSet + + ", ip_port='" + + ipPortSet + '\'' + ", type=" + type diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaDriver.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaDriver.java index 559134a665..cb045fae39 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaDriver.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PemjaDriver.java @@ -62,7 +62,7 @@ public PemjaWorker createWorker(PythonTask task, Writer writer) { if (taskMeta == null) { throw new IllegalArgumentException(String.format("UDF %s not registered", identifier)); } - if (!taskMeta.getIpSet().contains(config.getIp())) { + if (!taskMeta.containsIpPort(config.getIp(), config.getPort())) { throw new IllegalArgumentException( String.format("UDF %s not registered in node ip=%s", identifier, config.getIp())); } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PythonDriver.java b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PythonDriver.java index 72861271a1..22517584d1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PythonDriver.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/transform/driver/PythonDriver.java @@ -91,7 +91,7 @@ public IPCWorker createWorker(PythonTask task, Writer writer) throws TransformEx throw new CreateWorkerException( String.format("Fail to load task info by task name: %s", name)); } - if (!taskMeta.getIpSet().contains(config.getIp())) { + if (!taskMeta.containsIpPort(config.getIp(), config.getPort())) { throw new CreateWorkerException( String.format( "Fail to load task file, because current ip is: %s, and register ip is: %s", diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java index 9f1c319436..9d6b489446 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/SessionExecuteSqlResult.java @@ -369,15 +369,19 @@ private String buildShowRegisterTaskResult() { builder.append("Functions info:").append("\n"); List> cache = new ArrayList<>(); cache.add( - new ArrayList<>(Arrays.asList("NAME", "CLASS_NAME", "FILE_NAME", "IP", "UDF_TYPE"))); + new ArrayList<>(Arrays.asList("NAME", "CLASS_NAME", "FILE_NAME", "IP:PORT", "UDF_TYPE"))); for (RegisterTaskInfo info : registerTaskInfos) { + StringJoiner joiner = new StringJoiner(", "); + for (IpPortPair p : info.getIpPortPair()) { + joiner.add(String.format("%s:%d", p.getIp(), p.getPort())); + } cache.add( new ArrayList<>( Arrays.asList( info.getName(), info.getClassName(), info.getFileName(), - info.getIp(), + joiner.toString(), info.getType().toString()))); } builder.append(FormatUtils.formatResult(cache)); @@ -471,15 +475,19 @@ private List> buildShowRegisterTaskListResult() { if (registerTaskInfos != null && !registerTaskInfos.isEmpty()) { resList.add( - new ArrayList<>(Arrays.asList("NAME", "CLASS_NAME", "FILE_NAME", "IP", "UDF_TYPE"))); + new ArrayList<>(Arrays.asList("NAME", "CLASS_NAME", "FILE_NAME", "IP:PORT", "UDF_TYPE"))); for (RegisterTaskInfo info : registerTaskInfos) { + StringJoiner joiner = new StringJoiner(", "); + for (IpPortPair p : info.getIpPortPair()) { + joiner.add(String.format("%s:%d", p.getIp(), p.getPort())); + } resList.add( new ArrayList<>( Arrays.asList( info.getName(), info.getClassName(), info.getFileName(), - info.getIp(), + joiner.toString(), info.getType().toString()))); } } diff --git a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/HostUtils.java b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/HostUtils.java index 308c7780e4..0175c55ad6 100644 --- a/shared/src/main/java/cn/edu/tsinghua/iginx/utils/HostUtils.java +++ b/shared/src/main/java/cn/edu/tsinghua/iginx/utils/HostUtils.java @@ -19,17 +19,20 @@ */ package cn.edu.tsinghua.iginx.utils; -import java.net.Inet4Address; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.SocketException; +import java.io.IOException; +import java.net.*; import java.util.Enumeration; import java.util.HashSet; +import java.util.Objects; import java.util.Set; import java.util.regex.Pattern; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class HostUtils { + private static final Logger LOGGER = LoggerFactory.getLogger(HostUtils.class); + private static final String IPV4_REGEX = "^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$"; private static final Pattern IPV4_PATTERN = Pattern.compile(IPV4_REGEX); @@ -54,6 +57,66 @@ public class HostUtils { } } + private static String representativeIP; + + private static InetAddress getLocalHostExactAddress() { + // 多网卡环境下,找到真正在使用的IP地址 + try (final DatagramSocket socket = new DatagramSocket()) { + socket.connect(InetAddress.getByName("8.8.8.8"), 10002); + return socket.getLocalAddress(); + } catch (SocketException | UnknownHostException e) { + // 无法通过网络连接找到IP地址,遍历网卡 + try { + Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); + InetAddress candidate = null; + if (networkInterfaces == null) { + LOGGER.error("Cannot get network interfaces"); + return null; + } else { + while (networkInterfaces.hasMoreElements()) { + NetworkInterface networkInterface = networkInterfaces.nextElement(); + + // 排除回环、虚拟地址 + if (networkInterface.isLoopback() + || networkInterface.isVirtual() + || !networkInterface.isUp() + || networkInterface.getName().startsWith("vmnet") + || networkInterface.getName().startsWith("vEthernet")) continue; + + Enumeration inetAddresses = networkInterface.getInetAddresses(); + while (inetAddresses.hasMoreElements()) { + InetAddress inetAddress = inetAddresses.nextElement(); + // 优先私有地址 + if (!inetAddress.isLoopbackAddress() && inetAddress.isSiteLocalAddress()) { + return inetAddress; + } + // 保存第一个公有地址作为候选地址 + if (candidate == null + && !inetAddress.isLoopbackAddress() + && !inetAddress.isSiteLocalAddress()) { + candidate = inetAddress; + } + } + } + } + return candidate; + } catch (SocketException ee) { + LOGGER.error("Error occurred finding representative IP.", ee); + return null; + } + } + } + + public static boolean pingHost(String ip) { + try { + InetAddress address = InetAddress.getByName(ip); + return address.isReachable(1000); + } catch (IOException e) { + LOGGER.error("Error occurred pinging IP:{}.", ip, e); + } + return false; + } + public static boolean isLocalHost(String host) { for (String localHostAddress : LOCAL_HOST_ADDRESS_SET) { if (host.equals(localHostAddress)) { @@ -63,6 +126,16 @@ public static boolean isLocalHost(String host) { return false; } + public static String getRepresentativeIP() { + if (representativeIP == null) { + String ip = Objects.requireNonNull(getLocalHostExactAddress()).getHostAddress(); + if (pingHost(ip)) { + representativeIP = ip; + } + } + return representativeIP; + } + // public static boolean isLocalHost(String host) { // try { // InetAddress address = InetAddress.getByName(host); diff --git a/shared/src/test/java/cn/edu/tsinghua/iginx/utils/HostUtilsTest.java b/shared/src/test/java/cn/edu/tsinghua/iginx/utils/HostUtilsTest.java new file mode 100644 index 0000000000..da5d799a30 --- /dev/null +++ b/shared/src/test/java/cn/edu/tsinghua/iginx/utils/HostUtilsTest.java @@ -0,0 +1,45 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * TSIGinX@gmail.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package cn.edu.tsinghua.iginx.utils; + +import java.io.IOException; +import java.net.InetAddress; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class HostUtilsTest { + + @Test + public void testGetRepresentativeIP() throws IOException { + String ip = HostUtils.getRepresentativeIP(); + // 这里使用System.out而不是用logger是因为logger在测试时并没有输出内容 + System.out.println(ip); + + InetAddress address = InetAddress.getByName(ip); + // 单元测试没法通过client或者session验证ip的正确性,暂且使用ping验证一下能够联通 + // cn.edu.tsinghua.iginx.integration.other.HostUtilsTest中加入了使用session验证正确性的测试 + if (address.isReachable(1000)) { + System.out.println("successfully pinged."); + } else { + System.out.println("ping failed."); + Assertions.fail(); + } + } +} diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java index fb8fbc5bd0..70f398a93f 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/UDFTestTools.java @@ -152,7 +152,7 @@ public void executeAndCompareErrMsg(String statement, String expectedErrMsg) { } } - boolean isUDFRegistered(String udfName) { + public boolean isUDFRegistered(String udfName) { SessionExecuteSqlResult ret = execute(SHOW_FUNCTION_SQL); List registerUDFs = ret.getRegisterTaskInfos().stream() @@ -161,7 +161,7 @@ boolean isUDFRegistered(String udfName) { return registerUDFs.contains(udfName); } - boolean isUDFsRegistered(List names) { + public boolean isUDFsRegistered(List names) { SessionExecuteSqlResult ret = execute(SHOW_FUNCTION_SQL); List registerUDFs = ret.getRegisterTaskInfos().stream() diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/HostUtilsTest.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/HostUtilsTest.java new file mode 100644 index 0000000000..e2da1043b8 --- /dev/null +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/HostUtilsTest.java @@ -0,0 +1,69 @@ +/* + * IGinX - the polystore system with high performance + * Copyright (C) Tsinghua University + * TSIGinX@gmail.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package cn.edu.tsinghua.iginx.integration.other; + +import cn.edu.tsinghua.iginx.exception.SessionException; +import cn.edu.tsinghua.iginx.session.Session; +import cn.edu.tsinghua.iginx.thrift.IginxInfo; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class HostUtilsTest { + + private static final Logger LOGGER = LoggerFactory.getLogger(HostUtilsTest.class); + + private static Session session; + + @BeforeClass + public static void setUp() throws SessionException { + session = new Session("127.0.0.1", 6888, "root", "root"); + session.openSession(); + } + + @AfterClass + public static void tearDown() throws SessionException { + session.closeSession(); + } + + /** 配置文件中ip设置为0.0.0.0时,需要找到IGinX所在节点的真实ip。这里通过建立这个ip和端口的session来验证ip是否寻找正确 */ + @Test + public void getRealIp() { + try { + IginxInfo info = session.getClusterInfo().getIginxInfos().get(0); + String realIp = info.ip; + int port = info.port; + + Session newSession = new Session(realIp, port, "root", "root"); + newSession.openSession(); + try { + int iginxCount = newSession.getClusterInfo().getIginxInfos().size(); + assert iginxCount >= 1; + } finally { + newSession.closeSession(); + } + + } catch (SessionException e) { + LOGGER.error("Error occurred in session:", e); + } + } +} diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java index 6526328c93..c58f04ecc5 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/other/UDFPathIT.java @@ -19,9 +19,13 @@ */ package cn.edu.tsinghua.iginx.integration.other; +import cn.edu.tsinghua.iginx.conf.Config; +import cn.edu.tsinghua.iginx.conf.ConfigDescriptor; import cn.edu.tsinghua.iginx.exception.SessionException; -import cn.edu.tsinghua.iginx.integration.expansion.utils.SQLTestTools; +import cn.edu.tsinghua.iginx.integration.func.udf.UDFTestTools; import cn.edu.tsinghua.iginx.session.Session; +import java.util.List; +import java.util.stream.Collectors; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -34,6 +38,8 @@ public class UDFPathIT { private static Session session; + private static final Config config = ConfigDescriptor.getInstance().getConfig(); + // host info private static String defaultTestHost = "127.0.0.1"; private static int defaultTestPort = 6888; @@ -51,30 +57,23 @@ public static void tearDown() throws SessionException { session.closeSession(); } + /** ensure every udf in list is registered */ @Test public void testUDFFuncList() { - String statement = "SHOW FUNCTIONS;"; - String expectedRes = - "Functions info:\n" - + "+----------------+---------------+---------------------+-------+--------+\n" - + "| NAME| CLASS_NAME| FILE_NAME| IP|UDF_TYPE|\n" - + "+----------------+---------------+---------------------+-------+--------+\n" - + "| udf_sum| UDFSum| udf_sum.py|0.0.0.0| UDAF|\n" - + "|udf_max_with_key| UDFMaxWithKey| udf_max_with_key.py|0.0.0.0| UDAF|\n" - + "| cos| UDFCos| udtf_cos.py|0.0.0.0| UDTF|\n" - + "| columnExpand|UDFColumnExpand|udtf_column_expand.py|0.0.0.0| UDTF|\n" - + "| udf_min| UDFMin| udf_min.py|0.0.0.0| UDAF|\n" - + "| udf_avg| UDFAvg| udf_avg.py|0.0.0.0| UDAF|\n" - + "| arccos| UDFArcCos| udtf_arccos.py|0.0.0.0| UDTF|\n" - + "| key_add_one| UDFKeyAddOne| udtf_key_add_one.py|0.0.0.0| UDTF|\n" - + "| pow| UDFPow| udtf_pow.py|0.0.0.0| UDTF|\n" - + "| reverse_rows| UDFReverseRows| udsf_reverse_rows.py|0.0.0.0| UDSF|\n" - + "| udf_max| UDFMax| udf_max.py|0.0.0.0| UDAF|\n" - + "| transpose| UDFTranspose| udsf_transpose.py|0.0.0.0| UDSF|\n" - + "| udf_count| UDFCount| udf_count.py|0.0.0.0| UDAF|\n" - + "| multiply| UDFMultiply| udtf_multiply.py|0.0.0.0| UDTF|\n" - + "+----------------+---------------+---------------------+-------+--------+\n"; - - SQLTestTools.executeAndCompare(session, statement, expectedRes); + List UdfNameList; + List UdfList = config.getUdfList(); + UdfNameList = + UdfList.stream() + .map( + udf -> { + String[] udfInfo = udf.split(","); + if (udfInfo.length != 4) { + LOGGER.error("udf info len must be 4."); + } + return udfInfo[1]; + }) + .collect(Collectors.toList()); + UDFTestTools tools = new UDFTestTools(session); + tools.isUDFsRegistered(UdfNameList); } } diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHDataGeneratorIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHDataGeneratorIT.java index b675616227..9cf59178b7 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHDataGeneratorIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tpch/TPCHDataGeneratorIT.java @@ -39,7 +39,6 @@ import java.util.List; import java.util.TimeZone; import org.junit.AfterClass; -import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; @@ -91,7 +90,6 @@ public static void close() throws SessionException { session.closeSession(); } - @Before public void prepare() { List tableList = Arrays.asList( @@ -193,7 +191,10 @@ public void prepare() { for (int i = 0; i < 8; i++) { insertTable(tableList.get(i), fieldsList.get(i), typesList.get(i)); } + } + @Test + public void registerUDF() { List> UDFInfos = new ArrayList<>(); UDFInfos.add(Arrays.asList("UDTF", "extractYear", "UDFExtractYear", "udtf_extract_year.py")); // 注册UDF函数 @@ -304,6 +305,7 @@ private void registerUDF(List UDFInfo) { // 插入TPC-H测试中的临时表 @Test public void insertTmpTable() { + prepare(); for (int queryId : queryIds) { String sqlString = null; try { diff --git a/test/src/test/resources/testConfig.properties b/test/src/test/resources/testConfig.properties index 7d1266cc96..2f2ea97c86 100644 --- a/test/src/test/resources/testConfig.properties +++ b/test/src/test/resources/testConfig.properties @@ -4,8 +4,8 @@ storageEngineList=IoTDB12,InfluxDB,FileSystem,Relational,MongoDB,Redis relationalStorageEngineList=PostgreSQL,MySQL # the test for every engine -test-list=UserPermissionIT,DataSourceIT,SQLSessionIT,SQLSessionPoolIT,SQLCompareIT,NewSessionIT,TagIT,RestAnnotationIT,RestIT,TransformIT,UDFIT,SessionV2IT,SessionIT,SessionPoolIT,CompactionIT,TimePrecisionIT,PySessionIT -mongodb-test-list=UserPermissionIT,DataSourceIT,SQLSessionIT,SQLSessionPoolIT,SQLCompareIT,NewSessionIT,TagIT,RestAnnotationIT,RestIT,UDFIT,TransformIT,SessionV2IT,CompactionIT,TimePrecisionIT,PySessionIT +test-list=UserPermissionIT,DataSourceIT,SQLSessionIT,SQLSessionPoolIT,SQLCompareIT,NewSessionIT,TagIT,RestAnnotationIT,RestIT,TransformIT,UDFIT,SessionV2IT,SessionIT,SessionPoolIT,CompactionIT,TimePrecisionIT,PySessionIT,HostUtilsTest +mongodb-test-list=UserPermissionIT,DataSourceIT,SQLSessionIT,SQLSessionPoolIT,SQLCompareIT,NewSessionIT,TagIT,RestAnnotationIT,RestIT,UDFIT,TransformIT,SessionV2IT,CompactionIT,TimePrecisionIT,PySessionIT,HostUtilsTest # the DB config # isSupportDiffTypeHistoryData: 跟dummy有关,是否历史数据写进去和查出来不一样,主要是key不一样和value的类型不一样 diff --git a/thrift/src/main/thrift/rpc.thrift b/thrift/src/main/thrift/rpc.thrift index 73957dd0b2..246e82206b 100644 --- a/thrift/src/main/thrift/rpc.thrift +++ b/thrift/src/main/thrift/rpc.thrift @@ -614,11 +614,16 @@ struct GetRegisterTaskInfoReq { 1: required i64 sessionId } +struct IpPortPair { + 1: required string ip + 2: required i32 port +} + struct RegisterTaskInfo { 1: required string name 2: required string className 3: required string fileName - 4: required string ip + 4: required list ipPortPair 5: required UDFType type; } From 1225441c89226752d6f977ace34073bea7ac29c9 Mon Sep 17 00:00:00 2001 From: An Qi Date: Sat, 23 Nov 2024 22:25:30 +0800 Subject: [PATCH 28/33] ci: auto rename released package (#498) --- .github/workflows/release.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11cd67df4f..609264f306 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,10 +23,23 @@ jobs: --batch-mode \ -P release,!format \ -DskipTests=true + - id: current-version + name: Get project version from pom.xml + uses: ./.github/actions/project + - name: collect and rename + shell: bash + run: | + mkdir -p target + find . -path ./target -prune -o -type f -path '*/target/*.tar.gz' -exec cp -f {} target/ \; + cd target + VERSION=${{ steps.current-version.outputs.version }} + mv iginx-client-${VERSION}.tar.gz IGinX-Client-${VERSION}.tar.gz + mv iginx-assembly-${VERSION}-server.tar.gz IGinX-Server-${VERSION}.tar.gz + mv iginx-assembly-${VERSION}-include.tar.gz IGinX-FastDeploy-${VERSION}.tar.gz - name: upload uses: svenstaro/upload-release-action@v2 with: - file: "**/*.tar.gz" + file: "target/*.tar.gz" file_glob: true overwrite: true upload-deploy: From f2ff37a1a134536a15cd0b34119ff519d2ce85e2 Mon Sep 17 00:00:00 2001 From: jzl18thu Date: Sun, 1 Dec 2024 16:45:44 +0800 Subject: [PATCH 29/33] feat(sql): fix add storageengine (#507) --- .../cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java | 11 +++-------- .../java/cn/edu/tsinghua/iginx/sql/ParseTest.java | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index b6d5edee86..f3f162ecbf 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -553,14 +553,10 @@ public Statement visitAddStorageEngineStatement(AddStorageEngineStatementContext List engines = ctx.storageEngineSpec().storageEngine(); for (StorageEngineContext engine : engines) { String ipStr = engine.ip.getText(); - String ip = - ipStr.substring( - ipStr.indexOf(SQLConstant.QUOTE) + 1, ipStr.lastIndexOf(SQLConstant.QUOTE)); + String ip = ipStr.substring(1, ipStr.length() - 1); int port = Integer.parseInt(engine.port.getText()); String typeStr = engine.engineType.getText().trim(); - String type = - typeStr.substring( - typeStr.indexOf(SQLConstant.QUOTE) + 1, typeStr.lastIndexOf(SQLConstant.QUOTE)); + String type = typeStr.substring(1, typeStr.length() - 1); Map extra = parseExtra(engine.extra); addStorageEngineStatement.setEngines( new StorageEngine(ip, port, StorageEngineType.valueOf(type.toLowerCase()), extra)); @@ -2044,8 +2040,7 @@ private Map parseExtra(StringLiteralContext ctx) { if (extra.length() == 0 || extra.equals(SQLConstant.DOUBLE_QUOTES)) { return map; } - extra = - extra.substring(extra.indexOf(SQLConstant.QUOTE) + 1, extra.lastIndexOf(SQLConstant.QUOTE)); + extra = extra.substring(1, extra.length() - 1); String[] kvStr = extra.split(SQLConstant.COMMA); for (String kv : kvStr) { String[] kvArray = kv.split(SQLConstant.COLON); diff --git a/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java b/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java index ee6d4b3d81..8ca746b591 100644 --- a/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java +++ b/core/src/test/java/cn/edu/tsinghua/iginx/sql/ParseTest.java @@ -253,7 +253,7 @@ public void testParseShowReplication() { @Test public void testParseAddStorageEngine() { String addStorageEngineStr = - "ADD STORAGEENGINE (\"127.0.0.1\", 6667, \"iotdb12\", \"username: root, password: root\"), (\"127.0.0.1\", 6668, \"influxdb\", \"key1: val1, key2: val2\");"; + "ADD STORAGEENGINE (\"127.0.0.1\", 6667, \"iotdb12\", \"username: root, password: root\"), ('127.0.0.1', 6668, 'influxdb', 'key1: val1, key2: val2');"; AddStorageEngineStatement statement = (AddStorageEngineStatement) TestUtils.buildStatement(addStorageEngineStr); From ec64afa3af24c885730b98f225ce2a9d11b2b6db Mon Sep 17 00:00:00 2001 From: ZM <12236590+shinyano@users.noreply.github.com> Date: Fri, 6 Dec 2024 18:52:34 +0800 Subject: [PATCH 30/33] rename (#505) Co-authored-by: Yuqing Zhu --- .../src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 | 7 +------ .../cn/edu/tsinghua/iginx/client/IginxClient.java | 2 +- .../main/java/cn/edu/tsinghua/iginx/IginxWorker.java | 2 +- .../edu/tsinghua/iginx/engine/StatementBuilder.java | 2 +- .../cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java | 7 +++---- ...atement.java => RemoveStorageEngineStatement.java} | 11 +++++------ .../java/cn/edu/tsinghua/iginx/pool/SessionPool.java | 6 +++--- .../java/cn/edu/tsinghua/iginx/session/Session.java | 7 +++---- .../expansion/BaseCapacityExpansionIT.java | 6 +++--- .../iginx/integration/func/udf/TransformIT.java | 2 +- .../iginx/integration/tool/TempDummyDataSource.java | 2 +- test/src/test/resources/pySessionIT/tests.py | 6 +++--- thrift/src/main/thrift/rpc.thrift | 6 +++--- 13 files changed, 29 insertions(+), 37 deletions(-) rename core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/{RemoveHistoryDataSourceStatement.java => RemoveStorageEngineStatement.java} (84%) diff --git a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 index 6fc07ac307..3d1e04ee11 100644 --- a/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 +++ b/antlr/src/main/antlr4/cn/edu/tsinghua/iginx/sql/Sql.g4 @@ -48,7 +48,7 @@ statement | SHOW TRANSFORM JOB STATUS jobId = INT # showJobStatusStatement | CANCEL TRANSFORM JOB jobId = INT # cancelJobStatement | SHOW jobStatus TRANSFORM JOB # showEligibleJobStatement - | REMOVE HISTORYDATASOURCE removedStorageEngine (COMMA removedStorageEngine)* # removeHistoryDataSourceStatement + | REMOVE STORAGEENGINE removedStorageEngine (COMMA removedStorageEngine)* # removeStorageEngineStatement | SET CONFIG configName = stringLiteral configValue = stringLiteral # setConfigStatement | SHOW CONFIG (configName = stringLiteral)? # showConfigStatement | SHOW SESSIONID # showSessionIDStatement @@ -561,7 +561,6 @@ keyWords | RANGE | STEP | REMOVE - | HISTORYDATASOURCE | COMPACT | EXPLAIN | LOGICAL @@ -997,10 +996,6 @@ REMOVE : R E M O V E ; -HISTORYDATASOURCE - : H I S T O R Y D A T A S O U R C E - ; - COMPACT : C O M P A C T ; diff --git a/client/src/main/java/cn/edu/tsinghua/iginx/client/IginxClient.java b/client/src/main/java/cn/edu/tsinghua/iginx/client/IginxClient.java index be317a3388..de9db2d038 100644 --- a/client/src/main/java/cn/edu/tsinghua/iginx/client/IginxClient.java +++ b/client/src/main/java/cn/edu/tsinghua/iginx/client/IginxClient.java @@ -680,7 +680,7 @@ private static Completer buildIginxCompleter() { Arrays.asList("show", "functions"), Arrays.asList("show", "sessionid"), Arrays.asList("show", "rules"), - Arrays.asList("remove", "historydatasource")); + Arrays.asList("remove", "storageengine")); addArgumentCompleters(iginxCompleters, withoutNullCompleters, false); List singleCompleters = Arrays.asList("quit", "exit"); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java index e8d9a5a71a..5d059fe5ba 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/IginxWorker.java @@ -242,7 +242,7 @@ public QueryDataResp queryData(QueryDataReq req) { } @Override - public Status removeHistoryDataSource(RemoveHistoryDataSourceReq req) { + public Status removeStorageEngine(RemoveStorageEngineReq req) { if (!sessionManager.checkSession(req.getSessionId(), AuthType.Cluster)) { return RpcUtils.ACCESS_DENY; } diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementBuilder.java b/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementBuilder.java index 7d16e98a6e..551e89a4db 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementBuilder.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/engine/StatementBuilder.java @@ -47,7 +47,7 @@ public class StatementBuilder { typeMap.put(StatementType.EXPORT_STREAM_FROM_SELECT, SqlType.ExportStream); typeMap.put(StatementType.ADD_STORAGE_ENGINE, SqlType.AddStorageEngines); typeMap.put(StatementType.ALTER_STORAGE_ENGINE, SqlType.AlterStorageEngine); - typeMap.put(StatementType.REMOVE_HISTORY_DATA_SOURCE, SqlType.RemoveHistoryDataSource); + typeMap.put(StatementType.REMOVE_HISTORY_DATA_SOURCE, SqlType.RemoveStorageEngine); typeMap.put(StatementType.SHOW_REPLICATION, SqlType.GetReplicaNum); typeMap.put(StatementType.COUNT_POINTS, SqlType.CountPoints); typeMap.put(StatementType.CLEAR_DATA, SqlType.ClearData); diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java index f3f162ecbf..7e29999b58 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/IginXSqlVisitor.java @@ -113,7 +113,6 @@ import cn.edu.tsinghua.iginx.sql.SqlParser.PredicateWithSubqueryContext; import cn.edu.tsinghua.iginx.sql.SqlParser.QueryClauseContext; import cn.edu.tsinghua.iginx.sql.SqlParser.RegisterTaskStatementContext; -import cn.edu.tsinghua.iginx.sql.SqlParser.RemoveHistoryDataSourceStatementContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SearchedCaseContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SearchedWhenClauseContext; import cn.edu.tsinghua.iginx.sql.SqlParser.SelectClauseContext; @@ -653,9 +652,9 @@ private AuthType parseAuthType(String authType) { } @Override - public Statement visitRemoveHistoryDataSourceStatement( - RemoveHistoryDataSourceStatementContext ctx) { - RemoveHistoryDataSourceStatement statement = new RemoveHistoryDataSourceStatement(); + public Statement visitRemoveStorageEngineStatement( + SqlParser.RemoveStorageEngineStatementContext ctx) { + RemoveStorageEngineStatement statement = new RemoveStorageEngineStatement(); ctx.removedStorageEngine() .forEach( storageEngine -> { diff --git a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveHistoryDataSourceStatement.java b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveStorageEngineStatement.java similarity index 84% rename from core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveHistoryDataSourceStatement.java rename to core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveStorageEngineStatement.java index 5905f469b4..4f65ae56b1 100644 --- a/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveHistoryDataSourceStatement.java +++ b/core/src/main/java/cn/edu/tsinghua/iginx/sql/statement/RemoveStorageEngineStatement.java @@ -23,12 +23,12 @@ import cn.edu.tsinghua.iginx.engine.shared.RequestContext; import cn.edu.tsinghua.iginx.engine.shared.Result; import cn.edu.tsinghua.iginx.engine.shared.exception.StatementExecutionException; -import cn.edu.tsinghua.iginx.thrift.RemoveHistoryDataSourceReq; +import cn.edu.tsinghua.iginx.thrift.RemoveStorageEngineReq; import cn.edu.tsinghua.iginx.thrift.RemovedStorageEngineInfo; import java.util.ArrayList; import java.util.List; -public class RemoveHistoryDataSourceStatement extends SystemStatement { +public class RemoveStorageEngineStatement extends SystemStatement { private List storageEngineList; @@ -44,7 +44,7 @@ public void addStorageEngine(RemovedStorageEngineInfo storageEngine) { this.storageEngineList.add(storageEngine); } - public RemoveHistoryDataSourceStatement() { + public RemoveStorageEngineStatement() { storageEngineList = new ArrayList<>(); this.statementType = StatementType.REMOVE_HISTORY_DATA_SOURCE; } @@ -52,8 +52,7 @@ public RemoveHistoryDataSourceStatement() { @Override public void execute(RequestContext ctx) throws StatementExecutionException { IginxWorker worker = IginxWorker.getInstance(); - RemoveHistoryDataSourceReq req = - new RemoveHistoryDataSourceReq(ctx.getSessionId(), storageEngineList); - ctx.setResult(new Result(worker.removeHistoryDataSource(req))); + RemoveStorageEngineReq req = new RemoveStorageEngineReq(ctx.getSessionId(), storageEngineList); + ctx.setResult(new Result(worker.removeStorageEngine(req))); } } diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/pool/SessionPool.java b/session/src/main/java/cn/edu/tsinghua/iginx/pool/SessionPool.java index 9d792b3c64..389e2573af 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/pool/SessionPool.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/pool/SessionPool.java @@ -484,17 +484,17 @@ public void addStorageEngines(List storageEngines) throws Session } } - public void removeHistoryDataSource(List removedStorageEngineList) + public void removeStorageEngine(List removedStorageEngineList) throws SessionException { for (int i = 0; i < RETRY; i++) { Session session = getSession(); try { - session.removeHistoryDataSource(removedStorageEngineList); + session.removeStorageEngine(removedStorageEngineList); putBack(session); return; } catch (SessionException e) { // TException means the connection is broken, remove it and get a new one. - LOGGER.warn("removeHistoryDataSource failed", e); + LOGGER.warn("remove storage engine failed", e); cleanSessionAndMayThrowConnectionException(session, i, e); } catch (RuntimeException e) { putBack(session); diff --git a/session/src/main/java/cn/edu/tsinghua/iginx/session/Session.java b/session/src/main/java/cn/edu/tsinghua/iginx/session/Session.java index f8b4313cf4..d404c093db 100644 --- a/session/src/main/java/cn/edu/tsinghua/iginx/session/Session.java +++ b/session/src/main/java/cn/edu/tsinghua/iginx/session/Session.java @@ -1172,11 +1172,10 @@ public CurveMatchResult curveMatch( return new CurveMatchResult(ref.resp.getMatchedKey(), ref.resp.getMatchedPath()); } - public void removeHistoryDataSource(List removedStorageEngineList) + public void removeStorageEngine(List removedStorageEngineList) throws SessionException { - RemoveHistoryDataSourceReq req = - new RemoveHistoryDataSourceReq(sessionId, removedStorageEngineList); - executeWithCheck(() -> client.removeHistoryDataSource(req)); + RemoveStorageEngineReq req = new RemoveStorageEngineReq(sessionId, removedStorageEngineList); + executeWithCheck(() -> client.removeStorageEngine(req)); } public String getUsername() { diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java index 483adf7579..bd7a9e71d4 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/expansion/BaseCapacityExpansionIT.java @@ -405,7 +405,7 @@ protected void testUpdateEngineParams() throws SessionException { SQLTestTools.executeAndCompare(session, statement, pathList, valuesList); // 删除,不影响后续测试 - session.removeHistoryDataSource( + session.removeStorageEngine( Collections.singletonList( new RemovedStorageEngineInfo("127.0.0.1", readOnlyPort, prefix, ""))); @@ -689,7 +689,7 @@ private void testAddAndRemoveStorageEngineWithPrefix() { removedStorageEngineList.add( new RemovedStorageEngineInfo("127.0.0.1", expPort, "p3" + schemaPrefixSuffix, dataPrefix1)); try { - session.removeHistoryDataSource(removedStorageEngineList); + session.removeStorageEngine(removedStorageEngineList); testShowClusterInfo(4); } catch (SessionException e) { LOGGER.error("remove history data source through session api error: ", e); @@ -709,7 +709,7 @@ private void testAddAndRemoveStorageEngineWithPrefix() { SQLTestTools.executeAndCompare(session, statement, pathListAns, EXP_VALUES_LIST2); // 通过 sql 语句测试移除节点 - String removeStatement = "remove historydatasource (\"127.0.0.1\", %d, \"%s\", \"%s\");"; + String removeStatement = "remove storageengine (\"127.0.0.1\", %d, \"%s\", \"%s\");"; try { session.executeSql( String.format(removeStatement, expPort, "p1" + schemaPrefixSuffix, dataPrefix1)); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java index 1ef1050ef9..9db3bce71e 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/func/udf/TransformIT.java @@ -733,7 +733,7 @@ public void commitPythonExportBinaryToIginxTest() { LOGGER.error("Remove test resource dir failed:", e); } try { - session.removeHistoryDataSource( + session.removeStorageEngine( Collections.singletonList(new RemovedStorageEngineInfo("127.0.0.1", 6660, "", ""))); } catch (SessionException e) { LOGGER.error("Remove read-only dummy engine failed:", e); diff --git a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TempDummyDataSource.java b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TempDummyDataSource.java index e7344679d5..80163d9692 100644 --- a/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TempDummyDataSource.java +++ b/test/src/test/java/cn/edu/tsinghua/iginx/integration/tool/TempDummyDataSource.java @@ -103,6 +103,6 @@ private void init() throws SessionException { public void close() throws SessionException { RemovedStorageEngineInfo info = new RemovedStorageEngineInfo(ip, port, schemaPrefix, dataPrefix); - session.removeHistoryDataSource(Collections.singletonList(info)); + session.removeStorageEngine(Collections.singletonList(info)); } } diff --git a/test/src/test/resources/pySessionIT/tests.py b/test/src/test/resources/pySessionIT/tests.py index 2ce425b050..f27b0000bc 100644 --- a/test/src/test/resources/pySessionIT/tests.py +++ b/test/src/test/resources/pySessionIT/tests.py @@ -70,7 +70,7 @@ def addStorageEngine(self): cluster_info = self.session.get_cluster_info() retStr += str(cluster_info) + "\n" # 删除加入的存储引擎 - self.session.execute_sql('REMOVE HISTORYDATASOURCE ("127.0.0.1", 6670, "", "");') + self.session.execute_sql('REMOVE STORAGEENGINE ("127.0.0.1", 6670, "", "");') # 删除后输出所有存储引擎 cluster_info = self.session.get_cluster_info() retStr += str(cluster_info) + "\n" @@ -102,8 +102,8 @@ def addStorageEngine(self): cluster_info = self.session.get_cluster_info() retStr += str(cluster_info) + "\n" # 删除加入的存储引擎 - self.session.execute_sql('REMOVE HISTORYDATASOURCE ("127.0.0.1", 6670, "", "");') - self.session.execute_sql('REMOVE HISTORYDATASOURCE ("127.0.0.1", 6671, "", "");') + self.session.execute_sql('REMOVE STORAGEENGINE ("127.0.0.1", 6670, "", "");') + self.session.execute_sql('REMOVE STORAGEENGINE ("127.0.0.1", 6671, "", "");') # 删除新建的parquet文件 os.remove('pq/dummy/example.parquet') # 删除新建的文件夹 diff --git a/thrift/src/main/thrift/rpc.thrift b/thrift/src/main/thrift/rpc.thrift index 246e82206b..fc22cd9f60 100644 --- a/thrift/src/main/thrift/rpc.thrift +++ b/thrift/src/main/thrift/rpc.thrift @@ -71,7 +71,7 @@ enum SqlType { ShowJobStatus, CancelJob, ShowEligibleJob, - RemoveHistoryDataSource, + RemoveStorageEngine, SetConfig, ShowConfig, Compact, @@ -699,7 +699,7 @@ struct RemovedStorageEngineInfo { 4: required string dataPrefix } -struct RemoveHistoryDataSourceReq { +struct RemoveStorageEngineReq { 1: required i64 sessionId 2: required list removedStorageEngineInfoList } @@ -751,7 +751,7 @@ service IService { Status alterStorageEngine(1: AlterStorageEngineReq req); - Status removeHistoryDataSource(1: RemoveHistoryDataSourceReq req); + Status removeStorageEngine(1: RemoveStorageEngineReq req); AggregateQueryResp aggregateQuery(1: AggregateQueryReq req); From 4d90566e0dd7f1ae246559609400f35dead93b29 Mon Sep 17 00:00:00 2001 From: An Qi Date: Fri, 6 Dec 2024 18:53:42 +0800 Subject: [PATCH 31/33] test: remove temp tables and udf in tpc-h test (#516) Co-authored-by: Yuqing Zhu --- test/src/test/resources/tpch/queries/q17.sql | 41 ++++++---------- test/src/test/resources/tpch/queries/q2.sql | 51 ++++++++------------ test/src/test/resources/tpch/queries/q20.sql | 50 ++++++++----------- test/src/test/resources/tpch/queries/q7.sql | 5 +- test/src/test/resources/tpch/queries/q8.sql | 5 +- test/src/test/resources/tpch/queries/q9.sql | 26 ++++------ 6 files changed, 75 insertions(+), 103 deletions(-) diff --git a/test/src/test/resources/tpch/queries/q17.sql b/test/src/test/resources/tpch/queries/q17.sql index 7b33e04c7b..0a5480fd2d 100644 --- a/test/src/test/resources/tpch/queries/q17.sql +++ b/test/src/test/resources/tpch/queries/q17.sql @@ -1,29 +1,20 @@ -INSERT - INTO - tmpTableB( - KEY, - p_partkey, - val +WITH tmpTableB AS( + SELECT + part.p_partkey AS p_partkey, + 0.2 * tmp AS val + FROM + ( + SELECT + part.p_partkey, + AVG( lineitem.l_quantity ) AS tmp + FROM + lineitem + JOIN part ON + lineitem.l_partkey = part.p_partkey + GROUP BY + part.p_partkey ) - VALUES( - SELECT - part.p_partkey, - 0.2 * tmp - FROM - ( - SELECT - part.p_partkey, - AVG( lineitem.l_quantity ) AS tmp - FROM - lineitem - JOIN part ON - lineitem.l_partkey = part.p_partkey - GROUP BY - part.p_partkey - ) - ); - -SELECT +) SELECT tmp2 / 7 AS avg_yearly FROM ( diff --git a/test/src/test/resources/tpch/queries/q2.sql b/test/src/test/resources/tpch/queries/q2.sql index 7ea45b66ad..3761b4223f 100644 --- a/test/src/test/resources/tpch/queries/q2.sql +++ b/test/src/test/resources/tpch/queries/q2.sql @@ -1,33 +1,24 @@ -INSERT - INTO - tmpTable( - KEY, - p_key, - minCost - ) - VALUES( - SELECT - part.p_partkey AS p_key, - MIN( partsupp.ps_supplycost ) AS minCost - FROM - partsupp - JOIN supplier ON - supplier.s_suppkey = partsupp.ps_suppkey - JOIN nation ON - supplier.s_nationkey = nation.n_nationkey - JOIN region ON - nation.n_regionkey = region.r_regionkey - JOIN part ON - part.p_partkey = partsupp.ps_partkey - WHERE - region.r_name = 'EUROPE' - AND part.p_size = 15 - AND part.p_type LIKE "^.*BRASS" - GROUP BY - part.p_partkey - ); - -SELECT +WITH tmpTable AS( + SELECT + part.p_partkey AS p_key, + MIN( partsupp.ps_supplycost ) AS minCost + FROM + partsupp + JOIN supplier ON + supplier.s_suppkey = partsupp.ps_suppkey + JOIN nation ON + supplier.s_nationkey = nation.n_nationkey + JOIN region ON + nation.n_regionkey = region.r_regionkey + JOIN part ON + part.p_partkey = partsupp.ps_partkey + WHERE + region.r_name = 'EUROPE' + AND part.p_size = 15 + AND part.p_type LIKE "^.*BRASS" + GROUP BY + part.p_partkey +) SELECT supplier.s_acctbal AS s_acctbal, supplier.s_name AS s_name, nation.n_name AS n_name, diff --git a/test/src/test/resources/tpch/queries/q20.sql b/test/src/test/resources/tpch/queries/q20.sql index 3f23190607..ed1f2c8809 100644 --- a/test/src/test/resources/tpch/queries/q20.sql +++ b/test/src/test/resources/tpch/queries/q20.sql @@ -1,34 +1,24 @@ -INSERT - INTO - tmpTableA( - KEY, - partkey, - suppkey, - val +WITH tmpTableA AS( + SELECT + partkey, + suppkey, + 0.5 * tmp AS val + FROM + ( + SELECT + l_partkey AS partkey, + l_suppkey AS suppkey, + SUM( l_quantity ) AS tmp + FROM + lineitem + WHERE + lineitem.l_shipdate >= 757353600000 + AND lineitem.l_shipdate < 788889600000 + GROUP BY + l_partkey, + l_suppkey ) - VALUES( - SELECT - partkey, - suppkey, - 0.5 * tmp - FROM - ( - SELECT - l_partkey AS partkey, - l_suppkey AS suppkey, - SUM( l_quantity ) AS tmp - FROM - lineitem - WHERE - lineitem.l_shipdate >= 757353600000 - AND lineitem.l_shipdate < 788889600000 - GROUP BY - l_partkey, - l_suppkey - ) - ); - -SELECT +) SELECT supplier.s_name, supplier.s_address FROM diff --git a/test/src/test/resources/tpch/queries/q7.sql b/test/src/test/resources/tpch/queries/q7.sql index fb8ab1de49..b8b2042bf7 100644 --- a/test/src/test/resources/tpch/queries/q7.sql +++ b/test/src/test/resources/tpch/queries/q7.sql @@ -8,7 +8,10 @@ FROM SELECT n1.n_name AS supp_nation, n2.n_name AS cust_nation, - extractYear(lineitem.l_shipdate) AS l_year, + EXTRACT( + lineitem.l_shipdate, + "year" + ) AS l_year, lineitem.l_extendedprice *( 1 - lineitem.l_discount ) AS volume diff --git a/test/src/test/resources/tpch/queries/q8.sql b/test/src/test/resources/tpch/queries/q8.sql index 83c9038f9c..dac66898a4 100644 --- a/test/src/test/resources/tpch/queries/q8.sql +++ b/test/src/test/resources/tpch/queries/q8.sql @@ -4,7 +4,10 @@ SELECT FROM ( SELECT - extractYear(orders.o_orderdate) AS o_year, + EXTRACT( + orders.o_orderdate, + "year" + ) AS o_year, lineitem.l_extendedprice *( 1 - lineitem.l_discount ) AS volume, diff --git a/test/src/test/resources/tpch/queries/q9.sql b/test/src/test/resources/tpch/queries/q9.sql index e16462272c..1bd959b10d 100644 --- a/test/src/test/resources/tpch/queries/q9.sql +++ b/test/src/test/resources/tpch/queries/q9.sql @@ -1,19 +1,13 @@ -INSERT - INTO - tmpTableC( - KEY, - orderkey, - orderyear - ) - VALUES( - SELECT - o_orderkey, - extractYear(o_orderdate) - FROM - orders - ); - -SELECT +WITH tmpTableC AS( + SELECT + o_orderkey AS orderkey, + EXTRACT( + o_orderdate, + "year" + ) AS orderyear + FROM + orders +) SELECT nation, o_year, SUM( amount ) AS sum_profit From b3230b4ae7d2ca15a4a217c9bec905d00b51527a Mon Sep 17 00:00:00 2001 From: An Qi Date: Wed, 11 Dec 2024 18:00:34 +0800 Subject: [PATCH 32/33] add ci to check whether py-session has been updated --- .github/workflows/format-checker.yml | 17 +++++++++++++++++ pom.xml | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/.github/workflows/format-checker.yml b/.github/workflows/format-checker.yml index 23fc206bc5..60b92a92ae 100644 --- a/.github/workflows/format-checker.yml +++ b/.github/workflows/format-checker.yml @@ -19,3 +19,20 @@ jobs: shell: bash run: | mvn clean license:check + py-session: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + java-version: 8 + distribution: temurin + cache: maven + - name: remove py-session thrift + working-directory: session_py + run: rm -rf iginx/iginx_pyclient/thrift + - name: generate py-session thrift + run: mvn clean compile -pl thrift,session_py -DskipTests + - name: check py-session difference + working-directory: session_py + run: git diff --minimal --exit-code diff --git a/pom.xml b/pom.xml index 2d742c4558..4abcd29ac1 100644 --- a/pom.xml +++ b/pom.xml @@ -335,6 +335,11 @@ -Dfile.encoding=UTF-8 + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + org.apache.maven.plugins maven-assembly-plugin From 9652c65ab1eea85d60de5b04dcb900afce591742 Mon Sep 17 00:00:00 2001 From: An Qi Date: Thu, 12 Dec 2024 14:29:42 +0800 Subject: [PATCH 33/33] update pysession --- .../iginx_pyclient/thrift/rpc/IService-remote | 8 +- .../iginx_pyclient/thrift/rpc/IService.py | 52 ++-- .../iginx/iginx_pyclient/thrift/rpc/ttypes.py | 261 ++++++++++++------ 3 files changed, 204 insertions(+), 117 deletions(-) diff --git a/session_py/iginx/iginx_pyclient/thrift/rpc/IService-remote b/session_py/iginx/iginx_pyclient/thrift/rpc/IService-remote index e6590b2842..d3df2ac87c 100644 --- a/session_py/iginx/iginx_pyclient/thrift/rpc/IService-remote +++ b/session_py/iginx/iginx_pyclient/thrift/rpc/IService-remote @@ -35,7 +35,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help': print(' QueryDataResp queryData(QueryDataReq req)') print(' Status addStorageEngines(AddStorageEnginesReq req)') print(' Status alterStorageEngine(AlterStorageEngineReq req)') - print(' Status removeHistoryDataSource(RemoveHistoryDataSourceReq req)') + print(' Status removeStorageEngine(RemoveStorageEngineReq req)') print(' AggregateQueryResp aggregateQuery(AggregateQueryReq req)') print(' LastQueryResp lastQuery(LastQueryReq req)') print(' DownsampleQueryResp downsampleQuery(DownsampleQueryReq req)') @@ -209,11 +209,11 @@ elif cmd == 'alterStorageEngine': sys.exit(1) pp.pprint(client.alterStorageEngine(eval(args[0]),)) -elif cmd == 'removeHistoryDataSource': +elif cmd == 'removeStorageEngine': if len(args) != 1: - print('removeHistoryDataSource requires 1 args') + print('removeStorageEngine requires 1 args') sys.exit(1) - pp.pprint(client.removeHistoryDataSource(eval(args[0]),)) + pp.pprint(client.removeStorageEngine(eval(args[0]),)) elif cmd == 'aggregateQuery': if len(args) != 1: diff --git a/session_py/iginx/iginx_pyclient/thrift/rpc/IService.py b/session_py/iginx/iginx_pyclient/thrift/rpc/IService.py index 8b95723de7..093311745d 100644 --- a/session_py/iginx/iginx_pyclient/thrift/rpc/IService.py +++ b/session_py/iginx/iginx_pyclient/thrift/rpc/IService.py @@ -127,7 +127,7 @@ def alterStorageEngine(self, req): """ pass - def removeHistoryDataSource(self, req): + def removeStorageEngine(self, req): """ Parameters: - req @@ -719,24 +719,24 @@ def recv_alterStorageEngine(self): return result.success raise TApplicationException(TApplicationException.MISSING_RESULT, "alterStorageEngine failed: unknown result") - def removeHistoryDataSource(self, req): + def removeStorageEngine(self, req): """ Parameters: - req """ - self.send_removeHistoryDataSource(req) - return self.recv_removeHistoryDataSource() + self.send_removeStorageEngine(req) + return self.recv_removeStorageEngine() - def send_removeHistoryDataSource(self, req): - self._oprot.writeMessageBegin('removeHistoryDataSource', TMessageType.CALL, self._seqid) - args = removeHistoryDataSource_args() + def send_removeStorageEngine(self, req): + self._oprot.writeMessageBegin('removeStorageEngine', TMessageType.CALL, self._seqid) + args = removeStorageEngine_args() args.req = req args.write(self._oprot) self._oprot.writeMessageEnd() self._oprot.trans.flush() - def recv_removeHistoryDataSource(self): + def recv_removeStorageEngine(self): iprot = self._iprot (fname, mtype, rseqid) = iprot.readMessageBegin() if mtype == TMessageType.EXCEPTION: @@ -744,12 +744,12 @@ def recv_removeHistoryDataSource(self): x.read(iprot) iprot.readMessageEnd() raise x - result = removeHistoryDataSource_result() + result = removeStorageEngine_result() result.read(iprot) iprot.readMessageEnd() if result.success is not None: return result.success - raise TApplicationException(TApplicationException.MISSING_RESULT, "removeHistoryDataSource failed: unknown result") + raise TApplicationException(TApplicationException.MISSING_RESULT, "removeStorageEngine failed: unknown result") def aggregateQuery(self, req): """ @@ -1663,7 +1663,7 @@ def __init__(self, handler): self._processMap["queryData"] = Processor.process_queryData self._processMap["addStorageEngines"] = Processor.process_addStorageEngines self._processMap["alterStorageEngine"] = Processor.process_alterStorageEngine - self._processMap["removeHistoryDataSource"] = Processor.process_removeHistoryDataSource + self._processMap["removeStorageEngine"] = Processor.process_removeStorageEngine self._processMap["aggregateQuery"] = Processor.process_aggregateQuery self._processMap["lastQuery"] = Processor.process_lastQuery self._processMap["downsampleQuery"] = Processor.process_downsampleQuery @@ -1967,13 +1967,13 @@ def process_alterStorageEngine(self, seqid, iprot, oprot): oprot.writeMessageEnd() oprot.trans.flush() - def process_removeHistoryDataSource(self, seqid, iprot, oprot): - args = removeHistoryDataSource_args() + def process_removeStorageEngine(self, seqid, iprot, oprot): + args = removeStorageEngine_args() args.read(iprot) iprot.readMessageEnd() - result = removeHistoryDataSource_result() + result = removeStorageEngine_result() try: - result.success = self._handler.removeHistoryDataSource(args.req) + result.success = self._handler.removeStorageEngine(args.req) msg_type = TMessageType.REPLY except TTransport.TTransportException: raise @@ -1985,7 +1985,7 @@ def process_removeHistoryDataSource(self, seqid, iprot, oprot): logging.exception('Unexpected exception in handler') msg_type = TMessageType.EXCEPTION result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') - oprot.writeMessageBegin("removeHistoryDataSource", msg_type, seqid) + oprot.writeMessageBegin("removeStorageEngine", msg_type, seqid) result.write(oprot) oprot.writeMessageEnd() oprot.trans.flush() @@ -4012,7 +4012,7 @@ def __ne__(self, other): ) -class removeHistoryDataSource_args(object): +class removeStorageEngine_args(object): """ Attributes: - req @@ -4034,7 +4034,7 @@ def read(self, iprot): break if fid == 1: if ftype == TType.STRUCT: - self.req = RemoveHistoryDataSourceReq() + self.req = RemoveStorageEngineReq() self.req.read(iprot) else: iprot.skip(ftype) @@ -4047,7 +4047,7 @@ def write(self, oprot): if oprot._fast_encode is not None and self.thrift_spec is not None: oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) return - oprot.writeStructBegin('removeHistoryDataSource_args') + oprot.writeStructBegin('removeStorageEngine_args') if self.req is not None: oprot.writeFieldBegin('req', TType.STRUCT, 1) self.req.write(oprot) @@ -4068,14 +4068,14 @@ def __eq__(self, other): def __ne__(self, other): return not (self == other) -all_structs.append(removeHistoryDataSource_args) -removeHistoryDataSource_args.thrift_spec = ( +all_structs.append(removeStorageEngine_args) +removeStorageEngine_args.thrift_spec = ( None, # 0 - (1, TType.STRUCT, 'req', [RemoveHistoryDataSourceReq, None], None, ), # 1 + (1, TType.STRUCT, 'req', [RemoveStorageEngineReq, None], None, ), # 1 ) -class removeHistoryDataSource_result(object): +class removeStorageEngine_result(object): """ Attributes: - success @@ -4110,7 +4110,7 @@ def write(self, oprot): if oprot._fast_encode is not None and self.thrift_spec is not None: oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) return - oprot.writeStructBegin('removeHistoryDataSource_result') + oprot.writeStructBegin('removeStorageEngine_result') if self.success is not None: oprot.writeFieldBegin('success', TType.STRUCT, 0) self.success.write(oprot) @@ -4131,8 +4131,8 @@ def __eq__(self, other): def __ne__(self, other): return not (self == other) -all_structs.append(removeHistoryDataSource_result) -removeHistoryDataSource_result.thrift_spec = ( +all_structs.append(removeStorageEngine_result) +removeStorageEngine_result.thrift_spec = ( (0, TType.STRUCT, 'success', [Status, None], None, ), # 0 ) diff --git a/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py b/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py index 4192bf024c..2ab6c2041c 100644 --- a/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py +++ b/session_py/iginx/iginx_pyclient/thrift/rpc/ttypes.py @@ -149,7 +149,7 @@ class SqlType(object): ShowJobStatus = 16 CancelJob = 17 ShowEligibleJob = 18 - RemoveHistoryDataSource = 19 + RemoveStorageEngine = 19 SetConfig = 20 ShowConfig = 21 Compact = 22 @@ -185,7 +185,7 @@ class SqlType(object): 16: "ShowJobStatus", 17: "CancelJob", 18: "ShowEligibleJob", - 19: "RemoveHistoryDataSource", + 19: "RemoveStorageEngine", 20: "SetConfig", 21: "ShowConfig", 22: "Compact", @@ -222,7 +222,7 @@ class SqlType(object): "ShowJobStatus": 16, "CancelJob": 17, "ShowEligibleJob": 18, - "RemoveHistoryDataSource": 19, + "RemoveStorageEngine": 19, "SetConfig": 20, "ShowConfig": 21, "Compact": 22, @@ -7562,23 +7562,95 @@ def __ne__(self, other): return not (self == other) +class IpPortPair(object): + """ + Attributes: + - ip + - port + + """ + + + def __init__(self, ip=None, port=None,): + self.ip = ip + self.port = port + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + self.ip = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.port = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('IpPortPair') + if self.ip is not None: + oprot.writeFieldBegin('ip', TType.STRING, 1) + oprot.writeString(self.ip.encode('utf-8') if sys.version_info[0] == 2 else self.ip) + oprot.writeFieldEnd() + if self.port is not None: + oprot.writeFieldBegin('port', TType.I32, 2) + oprot.writeI32(self.port) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + if self.ip is None: + raise TProtocolException(message='Required field ip is unset!') + if self.port is None: + raise TProtocolException(message='Required field port is unset!') + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + class RegisterTaskInfo(object): """ Attributes: - name - className - fileName - - ip + - ipPortPair - type """ - def __init__(self, name=None, className=None, fileName=None, ip=None, type=None,): + def __init__(self, name=None, className=None, fileName=None, ipPortPair=None, type=None,): self.name = name self.className = className self.fileName = fileName - self.ip = ip + self.ipPortPair = ipPortPair self.type = type def read(self, iprot): @@ -7606,8 +7678,14 @@ def read(self, iprot): else: iprot.skip(ftype) elif fid == 4: - if ftype == TType.STRING: - self.ip = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + if ftype == TType.LIST: + self.ipPortPair = [] + (_etype829, _size826) = iprot.readListBegin() + for _i830 in range(_size826): + _elem831 = IpPortPair() + _elem831.read(iprot) + self.ipPortPair.append(_elem831) + iprot.readListEnd() else: iprot.skip(ftype) elif fid == 5: @@ -7637,9 +7715,12 @@ def write(self, oprot): oprot.writeFieldBegin('fileName', TType.STRING, 3) oprot.writeString(self.fileName.encode('utf-8') if sys.version_info[0] == 2 else self.fileName) oprot.writeFieldEnd() - if self.ip is not None: - oprot.writeFieldBegin('ip', TType.STRING, 4) - oprot.writeString(self.ip.encode('utf-8') if sys.version_info[0] == 2 else self.ip) + if self.ipPortPair is not None: + oprot.writeFieldBegin('ipPortPair', TType.LIST, 4) + oprot.writeListBegin(TType.STRUCT, len(self.ipPortPair)) + for iter832 in self.ipPortPair: + iter832.write(oprot) + oprot.writeListEnd() oprot.writeFieldEnd() if self.type is not None: oprot.writeFieldBegin('type', TType.I32, 5) @@ -7655,8 +7736,8 @@ def validate(self): raise TProtocolException(message='Required field className is unset!') if self.fileName is None: raise TProtocolException(message='Required field fileName is unset!') - if self.ip is None: - raise TProtocolException(message='Required field ip is unset!') + if self.ipPortPair is None: + raise TProtocolException(message='Required field ipPortPair is unset!') if self.type is None: raise TProtocolException(message='Required field type is unset!') return @@ -7704,11 +7785,11 @@ def read(self, iprot): elif fid == 2: if ftype == TType.LIST: self.registerTaskInfoList = [] - (_etype829, _size826) = iprot.readListBegin() - for _i830 in range(_size826): - _elem831 = RegisterTaskInfo() - _elem831.read(iprot) - self.registerTaskInfoList.append(_elem831) + (_etype836, _size833) = iprot.readListBegin() + for _i837 in range(_size833): + _elem838 = RegisterTaskInfo() + _elem838.read(iprot) + self.registerTaskInfoList.append(_elem838) iprot.readListEnd() else: iprot.skip(ftype) @@ -7729,8 +7810,8 @@ def write(self, oprot): if self.registerTaskInfoList is not None: oprot.writeFieldBegin('registerTaskInfoList', TType.LIST, 2) oprot.writeListBegin(TType.STRUCT, len(self.registerTaskInfoList)) - for iter832 in self.registerTaskInfoList: - iter832.write(oprot) + for iter839 in self.registerTaskInfoList: + iter839.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -7791,10 +7872,10 @@ def read(self, iprot): elif fid == 2: if ftype == TType.LIST: self.paths = [] - (_etype836, _size833) = iprot.readListBegin() - for _i837 in range(_size833): - _elem838 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() - self.paths.append(_elem838) + (_etype843, _size840) = iprot.readListBegin() + for _i844 in range(_size840): + _elem845 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + self.paths.append(_elem845) iprot.readListEnd() else: iprot.skip(ftype) @@ -7811,10 +7892,10 @@ def read(self, iprot): elif fid == 5: if ftype == TType.LIST: self.curveQuery = [] - (_etype842, _size839) = iprot.readListBegin() - for _i843 in range(_size839): - _elem844 = iprot.readDouble() - self.curveQuery.append(_elem844) + (_etype849, _size846) = iprot.readListBegin() + for _i850 in range(_size846): + _elem851 = iprot.readDouble() + self.curveQuery.append(_elem851) iprot.readListEnd() else: iprot.skip(ftype) @@ -7840,8 +7921,8 @@ def write(self, oprot): if self.paths is not None: oprot.writeFieldBegin('paths', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.paths)) - for iter845 in self.paths: - oprot.writeString(iter845.encode('utf-8') if sys.version_info[0] == 2 else iter845) + for iter852 in self.paths: + oprot.writeString(iter852.encode('utf-8') if sys.version_info[0] == 2 else iter852) oprot.writeListEnd() oprot.writeFieldEnd() if self.startKey is not None: @@ -7855,8 +7936,8 @@ def write(self, oprot): if self.curveQuery is not None: oprot.writeFieldBegin('curveQuery', TType.LIST, 5) oprot.writeListBegin(TType.DOUBLE, len(self.curveQuery)) - for iter846 in self.curveQuery: - oprot.writeDouble(iter846) + for iter853 in self.curveQuery: + oprot.writeDouble(iter853) oprot.writeListEnd() oprot.writeFieldEnd() if self.curveUnit is not None: @@ -8355,33 +8436,33 @@ def read(self, iprot): if fid == 1: if ftype == TType.LIST: self.fragments = [] - (_etype850, _size847) = iprot.readListBegin() - for _i851 in range(_size847): - _elem852 = Fragment() - _elem852.read(iprot) - self.fragments.append(_elem852) + (_etype857, _size854) = iprot.readListBegin() + for _i858 in range(_size854): + _elem859 = Fragment() + _elem859.read(iprot) + self.fragments.append(_elem859) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 2: if ftype == TType.LIST: self.storages = [] - (_etype856, _size853) = iprot.readListBegin() - for _i857 in range(_size853): - _elem858 = Storage() - _elem858.read(iprot) - self.storages.append(_elem858) + (_etype863, _size860) = iprot.readListBegin() + for _i864 in range(_size860): + _elem865 = Storage() + _elem865.read(iprot) + self.storages.append(_elem865) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 3: if ftype == TType.LIST: self.storageUnits = [] - (_etype862, _size859) = iprot.readListBegin() - for _i863 in range(_size859): - _elem864 = StorageUnit() - _elem864.read(iprot) - self.storageUnits.append(_elem864) + (_etype869, _size866) = iprot.readListBegin() + for _i870 in range(_size866): + _elem871 = StorageUnit() + _elem871.read(iprot) + self.storageUnits.append(_elem871) iprot.readListEnd() else: iprot.skip(ftype) @@ -8398,22 +8479,22 @@ def write(self, oprot): if self.fragments is not None: oprot.writeFieldBegin('fragments', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.fragments)) - for iter865 in self.fragments: - iter865.write(oprot) + for iter872 in self.fragments: + iter872.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.storages is not None: oprot.writeFieldBegin('storages', TType.LIST, 2) oprot.writeListBegin(TType.STRUCT, len(self.storages)) - for iter866 in self.storages: - iter866.write(oprot) + for iter873 in self.storages: + iter873.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.storageUnits is not None: oprot.writeFieldBegin('storageUnits', TType.LIST, 3) oprot.writeListBegin(TType.STRUCT, len(self.storageUnits)) - for iter867 in self.storageUnits: - iter867.write(oprot) + for iter874 in self.storageUnits: + iter874.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -8681,7 +8762,7 @@ def __ne__(self, other): return not (self == other) -class RemoveHistoryDataSourceReq(object): +class RemoveStorageEngineReq(object): """ Attributes: - sessionId @@ -8711,11 +8792,11 @@ def read(self, iprot): elif fid == 2: if ftype == TType.LIST: self.removedStorageEngineInfoList = [] - (_etype871, _size868) = iprot.readListBegin() - for _i872 in range(_size868): - _elem873 = RemovedStorageEngineInfo() - _elem873.read(iprot) - self.removedStorageEngineInfoList.append(_elem873) + (_etype878, _size875) = iprot.readListBegin() + for _i879 in range(_size875): + _elem880 = RemovedStorageEngineInfo() + _elem880.read(iprot) + self.removedStorageEngineInfoList.append(_elem880) iprot.readListEnd() else: iprot.skip(ftype) @@ -8728,7 +8809,7 @@ def write(self, oprot): if oprot._fast_encode is not None and self.thrift_spec is not None: oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) return - oprot.writeStructBegin('RemoveHistoryDataSourceReq') + oprot.writeStructBegin('RemoveStorageEngineReq') if self.sessionId is not None: oprot.writeFieldBegin('sessionId', TType.I64, 1) oprot.writeI64(self.sessionId) @@ -8736,8 +8817,8 @@ def write(self, oprot): if self.removedStorageEngineInfoList is not None: oprot.writeFieldBegin('removedStorageEngineInfoList', TType.LIST, 2) oprot.writeListBegin(TType.STRUCT, len(self.removedStorageEngineInfoList)) - for iter874 in self.removedStorageEngineInfoList: - iter874.write(oprot) + for iter881 in self.removedStorageEngineInfoList: + iter881.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -8852,10 +8933,10 @@ def read(self, iprot): elif fid == 2: if ftype == TType.LIST: self.sessionIDList = [] - (_etype878, _size875) = iprot.readListBegin() - for _i879 in range(_size875): - _elem880 = iprot.readI64() - self.sessionIDList.append(_elem880) + (_etype885, _size882) = iprot.readListBegin() + for _i886 in range(_size882): + _elem887 = iprot.readI64() + self.sessionIDList.append(_elem887) iprot.readListEnd() else: iprot.skip(ftype) @@ -8876,8 +8957,8 @@ def write(self, oprot): if self.sessionIDList is not None: oprot.writeFieldBegin('sessionIDList', TType.LIST, 2) oprot.writeListBegin(TType.I64, len(self.sessionIDList)) - for iter881 in self.sessionIDList: - oprot.writeI64(iter881) + for iter888 in self.sessionIDList: + oprot.writeI64(iter888) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -8992,11 +9073,11 @@ def read(self, iprot): elif fid == 2: if ftype == TType.MAP: self.rules = {} - (_ktype883, _vtype884, _size882) = iprot.readMapBegin() - for _i886 in range(_size882): - _key887 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() - _val888 = iprot.readBool() - self.rules[_key887] = _val888 + (_ktype890, _vtype891, _size889) = iprot.readMapBegin() + for _i893 in range(_size889): + _key894 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + _val895 = iprot.readBool() + self.rules[_key894] = _val895 iprot.readMapEnd() else: iprot.skip(ftype) @@ -9017,9 +9098,9 @@ def write(self, oprot): if self.rules is not None: oprot.writeFieldBegin('rules', TType.MAP, 2) oprot.writeMapBegin(TType.STRING, TType.BOOL, len(self.rules)) - for kiter889, viter890 in self.rules.items(): - oprot.writeString(kiter889.encode('utf-8') if sys.version_info[0] == 2 else kiter889) - oprot.writeBool(viter890) + for kiter896, viter897 in self.rules.items(): + oprot.writeString(kiter896.encode('utf-8') if sys.version_info[0] == 2 else kiter896) + oprot.writeBool(viter897) oprot.writeMapEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -9074,11 +9155,11 @@ def read(self, iprot): elif fid == 2: if ftype == TType.MAP: self.rulesChange = {} - (_ktype892, _vtype893, _size891) = iprot.readMapBegin() - for _i895 in range(_size891): - _key896 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() - _val897 = iprot.readBool() - self.rulesChange[_key896] = _val897 + (_ktype899, _vtype900, _size898) = iprot.readMapBegin() + for _i902 in range(_size898): + _key903 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + _val904 = iprot.readBool() + self.rulesChange[_key903] = _val904 iprot.readMapEnd() else: iprot.skip(ftype) @@ -9099,9 +9180,9 @@ def write(self, oprot): if self.rulesChange is not None: oprot.writeFieldBegin('rulesChange', TType.MAP, 2) oprot.writeMapBegin(TType.STRING, TType.BOOL, len(self.rulesChange)) - for kiter898, viter899 in self.rulesChange.items(): - oprot.writeString(kiter898.encode('utf-8') if sys.version_info[0] == 2 else kiter898) - oprot.writeBool(viter899) + for kiter905, viter906 in self.rulesChange.items(): + oprot.writeString(kiter905.encode('utf-8') if sys.version_info[0] == 2 else kiter905) + oprot.writeBool(viter906) oprot.writeMapEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -9642,13 +9723,19 @@ def __ne__(self, other): None, # 0 (1, TType.I64, 'sessionId', None, None, ), # 1 ) +all_structs.append(IpPortPair) +IpPortPair.thrift_spec = ( + None, # 0 + (1, TType.STRING, 'ip', 'UTF8', None, ), # 1 + (2, TType.I32, 'port', None, None, ), # 2 +) all_structs.append(RegisterTaskInfo) RegisterTaskInfo.thrift_spec = ( None, # 0 (1, TType.STRING, 'name', 'UTF8', None, ), # 1 (2, TType.STRING, 'className', 'UTF8', None, ), # 2 (3, TType.STRING, 'fileName', 'UTF8', None, ), # 3 - (4, TType.STRING, 'ip', 'UTF8', None, ), # 4 + (4, TType.LIST, 'ipPortPair', (TType.STRUCT, [IpPortPair, None], False), None, ), # 4 (5, TType.I32, 'type', None, None, ), # 5 ) all_structs.append(GetRegisterTaskInfoResp) @@ -9730,8 +9817,8 @@ def __ne__(self, other): (3, TType.STRING, 'schemaPrefix', 'UTF8', None, ), # 3 (4, TType.STRING, 'dataPrefix', 'UTF8', None, ), # 4 ) -all_structs.append(RemoveHistoryDataSourceReq) -RemoveHistoryDataSourceReq.thrift_spec = ( +all_structs.append(RemoveStorageEngineReq) +RemoveStorageEngineReq.thrift_spec = ( None, # 0 (1, TType.I64, 'sessionId', None, None, ), # 1 (2, TType.LIST, 'removedStorageEngineInfoList', (TType.STRUCT, [RemovedStorageEngineInfo, None], False), None, ), # 2