METAMODEL-252: Fixed Closes #100
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/152f8487 Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/152f8487 Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/152f8487 Branch: refs/heads/5.x Commit: 152f8487a31051733e33f01c06c97d4c6742d26f Parents: a6093c1 Author: Dennis Du Krøger <[email protected]> Authored: Thu May 12 20:18:41 2016 -0700 Committer: Kasper Sørensen <[email protected]> Committed: Thu May 12 20:18:41 2016 -0700 ---------------------------------------------------------------------- CHANGES.md | 339 ++++++++++--------- .../metamodel/jdbc/JdbcMetadataLoader.java | 19 ++ 2 files changed, 189 insertions(+), 169 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/152f8487/CHANGES.md ---------------------------------------------------------------------- diff --git a/CHANGES.md b/CHANGES.md index 2bb7572..25a7ed4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,169 +1,170 @@ -### Apache MetaModel 4.5.3 (work in progress) - - * [METAMODEL-235] - Fixed a bug related to handling of null or missing values in ElasticSearch using REST client. - * [METAMODEL-225] - Fixed support for nested objects and arrays in ElasticSearch using REST client. - * [METAMODEL-244] - Added ColumnNamingStrategies concept which allows custom column naming and column name overriding. - * [METAMODEL-242] - Fixed issue when de-serializing old enum-instances of FunctionType. - * [METAMODEL-247] - Added FixedWidthConfigurationReader for reading fixed width file metadata from external files. - * [METAMODEL-159] - DataContextFactory misses methods to create HBase and POJO data contexts - -### Apache MetaModel 4.5.2 - - * [METAMODEL-236] - Made OperatorType and FunctionType Serializable to ensure that serialization of Query is possible. - -### Apache MetaModel 4.5.1 - - * [METAMODEL-227] - Fix for respecting CSV escape character also when no quote character is set. - * [METAMODEL-183] - MongoDB module split into three: common, Mongo2 and Mongo3 to allow use of either old or new MongoDB API. - * [METAMODEL-231] - Fixed a bug causing the Neo4j to represent the same table multiple times within a schema. - * [METAMODEL-228] - Fixed a bug causing Number.class to not be converted to ColumnType.NUMBER. - -### Apache MetaModel 4.5.0 - - * [METAMODEL-212] - New module for ElasticSearch via REST client. - * [METAMODEL-99] - New module for Neo4j connectivity with MetaModel. - * [METAMODEL-207] - Ensured the serializability of the SingleLineCsvRow class. - * [METAMODEL-211] - Fixed a bug related to lookup by primary key (_id) on MongoDB. - * [METAMODEL-216] - Added new aggregate functions: FIRST, LAST and RANDOM. - * [METAMODEL-195] - Added new function MAP_VALUE which allows extracting a nested value from within a key/value map field. - * [METAMODEL-15] - Query parser support for table names with space. Delimitters can be double quote or square brackets. - * [METAMODEL-215] - Improved the capability of NumberComparator to support Integer, Long, Double, BigInteger and other built-in Number classes. - * [METAMODEL-218] - Fixed conversion of STRING and NUMBER types to database-specific types in JDBC module. - * [METAMODEL-205] - Added validation of Excel sheet name before attempting to create table (sheet). - * [METAMODEL-219] - Made HdfsResource capable of incorporating Hadoop configuration files core-site.xml and hdfs-site.xml - * [METAMODEL-220] - Made HdfsResource capable of working with other URI schemes than 'hdfs'. - -### Apache MetaModel 4.4.1 - - * [METAMODEL-198] - Fixed support for JDBC TIMESTAMP precision to match the underlying database's precision. - * [METAMODEL-200] - Added optional "APPROXIMATE" keyword to query syntax for aggregate functions. - * [METAMODEL-144] - Automated binary packaging of the MetaModel project. - * [METAMODEL-197] - ElasticSearch schema update/change after CREATE TABLE statements. - * [METAMODEL-199] - Fixed a bug in query parser when parsing two consecutive WHERE items with parentheses around them. - * [METAMODEL-203] - Upgraded MongoDB dependency version and API to the 3.x line. - -### Apache MetaModel 4.4.0 - - * [METAMODEL-192] - Added support for Scalar functions. We have a basic set of datatype conversion functions as well as support for UDF via implementing the ScalarFunction interface. - * [METAMODEL-194] - Added support for setting the "Max rows" flag of a query to 0. This will always return an empty dataset. - * [METAMODEL-173] - Improved CSV writing to non-file destinations. Added .write() and .append() methods to Resource interface. - * [METAMODEL-170] - Dropped support for Java 6. - * [METAMODEL-176] - Trimmed the transient dependencies of the JDBC module. - * [METAMODEL-178] - Added AggregateFunction and ScalarFunction interfaces. Changed FunctionType enum to be super-interface of those. Compatibility is retained but a recompile of code using FunctionType is needed. - * [METAMODEL-188] - Changed OperatorType enum to be an interface. Compatibility is retained but a recompile of code is needed. - * [METAMODEL-179] - Ensured that HdfsResource is not closing a shared HDFS file system reference. - * [METAMODEL-171] - Made integration tests for Cassandra module function properly in all environments. - * [METAMODEL-177] - Fixed a bug pertaining to the serializability of HdfsResource. - * [METAMODEL-172] - ElasticSearch Date types should be converted properly. - * [METAMODEL-184] - ElasticSearch querying with "IS NULL" and "IS NOT NULL" now uses MissingFilter and ExistsFilter. - * [METAMODEL-190] - Improved decimal number support in Excel module. - * [METAMODEL-187] - Improved memory consumption of Excel module by passing random-access-file handles to POI when possible. - * [METAMODEL-191] - Resolved a number of dependency conflicts/overlaps when combining multiple MetaModel modules. - * [METAMODEL-157] - Fixed an issue in DELETE FROM statements with WHERE clauses requiring client-side data type conversion on JDBC databases. - * [METAMODEL-182] - Improved HdfsResource and FileResource directory-based implementations by adding also getSize() and getLastModified() directory-based implementations. - -### Apache MetaModel 4.3.6 - - * [METAMODEL-161] - Upgraded HBase client API to version 1.1.1 - * [METAMODEL-160] - Added support for Apache Hive via the JDBC module of MetaModel. - * [METAMODEL-162] - Made HdfsResource Serializable and added property getters - * [METAMODEL-163] - Made FileResource and HdfsResource work with folders containing file chunks instead of only single files - * [METAMODEL-104] - Added 'hadoop' and 'hbase' modules to dependencies of 'MetaModel-full'. - * [METAMODEL-164] - Fixed a bug in data type parsing of ElasticSearch mapping document. - -### Apache MetaModel 4.3.5 - - * [METAMODEL-148] - Added a 'hadoop' module with a HdfsResource class to allow CSV, Excel and Fixed-width file access on HDFS. - * [METAMODEL-152] - Fixed an issue of not clearing schema cache when refreshSchemas() is invoked. - * [METAMODEL-149] - Added support for COUNTER data type in Cassandra. - * [METAMODEL-151] - Added support for DOUBLE data type mapping in PostgreSQL - * [METAMODEL-154] - Use embedded Cassandra server for integration tests. - -### Apache MetaModel 4.3.4 - - * [METAMODEL-136] - Added LIKE operator native support (using conversion to regex) for MongoDB. - * [METAMODEL-138] - Allow empty characters before AS keyword in query parsing. - * [METAMODEL-141] - Improved mapping of ColumnType to SQL data types for Oracle, SQL Server, MySQL, DB2 and PostgreSQL - * [METAMODEL-142] - Ensured that JDBC schema refreshes in an UpdateScript is using same Connection/Transaction as rest of operations - * [METAMODEL-133] - Improved query parser support for multiple JOINs in same query. - * [METAMODEL-140] - Fixed support for ElasticSearch mappings with additional property attributes. - -### Apache MetaModel 4.3.3 - - * [METAMODEL-123] - Added compatibility with ElasticSearch version 1.4.x - * [METAMODEL-93] - Added compatibility with Apache HBase version 1.0.0 - * [METAMODEL-124] - Invoked ElasticSearch cross-version incompatible methods via reflection - * [METAMODEL-125] - Added support for comma-separated select items in Query.select(String) method argument. - * [METAMODEL-128] - Fixed bug in DataSet ordering when aggregation functions are applied to non-JDBC modules. - * [METAMODEL-131] - Added support for composite primary keys in JDBC CREATE TABLE statements. - -### Apache MetaModel 4.3.2 - - * [METAMODEL-78] - Fixed a bug that caused SELECT DISTINCT to sometimes return duplicates records on certain DataContext implementations. - * [METAMODEL-106] - Improved handling of invalid or non-existing index names passed to ElasticSearchDataContext - * [METAMODEL-79] - Added update execution support on ElasticSearch module. Increased capability of pushing down WHERE items to ElasticSearch searches. - * [METAMODEL-115] - Improved query parsing to allow lower-case function names, operators etc. - -### Apache MetaModel 4.3.1 - - * [METAMODEL-100] - Fixed bug when having multiple columns of same name. Added column no. comparison when calling Column.equals(...). - -### Apache MetaModel 4.3.0-incubating - - * [METAMODEL-77] - New module 'elasticsearch' for connecting and modeling ElasticSearch indexes through MetaModel. - * [METAMODEL-18] - New module 'cassandra' for connecting and modelling Apache Cassandra databases through MetaModel. - * [METAMODEL-83] - Added new operator types: GREATER_THAN_OR_EQUAL ('>=') and LESS_THAN_OR_EQUAL ('<='). - * [METAMODEL-92] - For JSON, MongoDB and CouchDB: Made it possible to specify column names referring nested fields such as "name.first" or "addresses[0].city". - * [METAMODEL-76] - Query parser improved to handle filters without spaces inbetween operator and operands. - * [METAMODEL-95] - Fixed a critical bug in the Salesforce.com module which caused all number values to be interpreted as '1'. - * [METAMODEL-74] - Fixed a bug related to skipping blank values when applying an aggregate function (SUM, AVG etc.) - * [METAMODEL-85] - Fixed a bug that caused NULL values to be evaluated with equal-sign in JDBC update and delete statements instead of 'IS NULL'. - -### Apache MetaModel 4.2.0-incubating - - * [METAMODEL-38] - New module 'json' for handling json files (containing JSON arrays of documents or line-delimited JSON documents) - * [METAMODEL-54] - ColumnType converted from enum to interface to allow for further specialization in modules. - * [METAMODEL-57] - Changed the column type VARCHAR into STRING for the modules: CSV, Fixedwidth, Excel and XML. - * [METAMODEL-56] - Made separate column types for converted JDBC LOBs - "CLOB as String" and "BLOB as bytes". - * [METAMODEL-46] - Improved row-lookup by primary key (ID) in CouchDB - * [METAMODEL-58] - Fixed a bug related to using CreateTable class and primary keys not getting created. - * [METAMODEL-3] - Improved writing of Byte-Order-Mark (BOM) for various encoding spelling variants. - * [METAMODEL-70] - Made the build compatible with both JDK versions 6 and 7. - * [METAMODEL-59] - Fixed a bug related to handling of date/time literals in MS SQL Server queries. - * [METAMODEL-60] - Fixed a bug related to DISTINCT and TOP keywords in MS SQL Server queries. - * [METAMODEL-45] - Improved and standardized way of handling integration test connection information towards external databases. - * [METAMODEL-62] - Fixed a bug related to fault-tolerant handling of malformed CSV lines when reading CSVs in single-line mode - * [METAMODEL-68] - Made it possible to create a CSV table without a header line in the file, if the user configures it. - * [METAMODEL-67] - Upgraded Jackson (JSON library) dependency from org.codehaus namespace to the newer com.fasterxml namespace. - * [METAMODEL-69] - Fixed issue with deserialization of ColumnType into the new interface instead of the old enum. - -### Apache MetaModel 4.1.0-incubating - - * [METAMODEL-13] - Added support for Apache HBase via the new module "MetaModel-hbase" - * [METAMODEL-41] - Added a parser for SimpleTableDef objects (SimpleTableDefParser). It parses statements similar to CREATE TABLE statements, although without the "CREATE TABLE" prefix. For example: foo (bar INTEGER, baz VARCHAR) - * [METAMODEL-11] - New module "MetaModel-spring" which adds a convenient FactoryBean to produce various types of DataContext objects based on externalizable parameters, for Spring framework users. - * [METAMODEL-32] - Fixed thread-safety issue in Excel module when tables (sheets) metadata is updated. - * [METAMODEL-47] - Fixed issue in Excel of loading schema if query is fired based on metadata from a previous DataContext instance. - * [METAMODEL-35] - Improved query rewriting for DB2 when paged queries contain ORDER BY clause. - * [METAMODEL-44] - Added an optional method for QueryPostprocessDataContext implementations to do a row-lookup by primary key value. - * [METAMODEL-43] - Made CSV datastores skip empty lines in file instead of treating them of rows with null values. - * [METAMODEL-39] - Added pooling of active/used Connections and PreparedStatements in JDBC compiled queries. - * [METAMODEL-34] - Updated LICENSE file to not include bundled dependencies' licenses. - * [METAMODEL-33] - Ensured that Apache Rat plugin for Maven is properly activated. - * [METAMODEL-37] - Removed old site sources from project. - -### Apache MetaModel 4.0.0-incubating - - * [METAMODEL-9] - SalesforceDataSet is throwing exception for insert sql of record having date/time. - * [METAMODEL-4] - Use folder name as schema name for file based DataContexts - * [METAMODEL-5] - Faster CsvDataContext implementation for single-line values - * [METAMODEL-26] - Provide endpoint URL with SalesforceDataContext - * Upgraded Apache POI dependency to v. 3.9 - * Improved fluent Query builder API by adding string parameter based methods for joining tables - * Added a utility ObjectInputStream for deserializing legacy MetaModel objects - * Performance improvement to CSV reading when values are only single line based - * Setting up the project on apache infrastructure - * [METAMODEL-10] - Exclude Jackcess dependency (Access module) from MetaModel - * Renaming the package hierarchy from org.eobjects.metamodel to org.apache.metamodel - * [METAMODEL-29] - Fixed issue in CreateTable builder class, causing it to only support a single column definition - * [METAMODEL-30] - Fixed issue with count(*) queries on CSV resources that does not provide a byte stream length +### Apache MetaModel 4.5.3 (work in progress) + + * [METAMODEL-235] - Fixed a bug related to handling of null or missing values in ElasticSearch using REST client. + * [METAMODEL-225] - Fixed support for nested objects and arrays in ElasticSearch using REST client. + * [METAMODEL-244] - Added ColumnNamingStrategies concept which allows custom column naming and column name overriding. + * [METAMODEL-242] - Fixed issue when de-serializing old enum-instances of FunctionType. + * [METAMODEL-247] - Added FixedWidthConfigurationReader for reading fixed width file metadata from external files. + * [METAMODEL-159] - DataContextFactory misses methods to create HBase and POJO data contexts. + * [METAMODEL-252] - Fixed a bug that caused JDBC updates to unnecessarily refresh schema objects. + +### Apache MetaModel 4.5.2 + + * [METAMODEL-236] - Made OperatorType and FunctionType Serializable to ensure that serialization of Query is possible. + +### Apache MetaModel 4.5.1 + + * [METAMODEL-227] - Fix for respecting CSV escape character also when no quote character is set. + * [METAMODEL-183] - MongoDB module split into three: common, Mongo2 and Mongo3 to allow use of either old or new MongoDB API. + * [METAMODEL-231] - Fixed a bug causing the Neo4j to represent the same table multiple times within a schema. + * [METAMODEL-228] - Fixed a bug causing Number.class to not be converted to ColumnType.NUMBER. + +### Apache MetaModel 4.5.0 + + * [METAMODEL-212] - New module for ElasticSearch via REST client. + * [METAMODEL-99] - New module for Neo4j connectivity with MetaModel. + * [METAMODEL-207] - Ensured the serializability of the SingleLineCsvRow class. + * [METAMODEL-211] - Fixed a bug related to lookup by primary key (_id) on MongoDB. + * [METAMODEL-216] - Added new aggregate functions: FIRST, LAST and RANDOM. + * [METAMODEL-195] - Added new function MAP_VALUE which allows extracting a nested value from within a key/value map field. + * [METAMODEL-15] - Query parser support for table names with space. Delimitters can be double quote or square brackets. + * [METAMODEL-215] - Improved the capability of NumberComparator to support Integer, Long, Double, BigInteger and other built-in Number classes. + * [METAMODEL-218] - Fixed conversion of STRING and NUMBER types to database-specific types in JDBC module. + * [METAMODEL-205] - Added validation of Excel sheet name before attempting to create table (sheet). + * [METAMODEL-219] - Made HdfsResource capable of incorporating Hadoop configuration files core-site.xml and hdfs-site.xml + * [METAMODEL-220] - Made HdfsResource capable of working with other URI schemes than 'hdfs'. + +### Apache MetaModel 4.4.1 + + * [METAMODEL-198] - Fixed support for JDBC TIMESTAMP precision to match the underlying database's precision. + * [METAMODEL-200] - Added optional "APPROXIMATE" keyword to query syntax for aggregate functions. + * [METAMODEL-144] - Automated binary packaging of the MetaModel project. + * [METAMODEL-197] - ElasticSearch schema update/change after CREATE TABLE statements. + * [METAMODEL-199] - Fixed a bug in query parser when parsing two consecutive WHERE items with parentheses around them. + * [METAMODEL-203] - Upgraded MongoDB dependency version and API to the 3.x line. + +### Apache MetaModel 4.4.0 + + * [METAMODEL-192] - Added support for Scalar functions. We have a basic set of datatype conversion functions as well as support for UDF via implementing the ScalarFunction interface. + * [METAMODEL-194] - Added support for setting the "Max rows" flag of a query to 0. This will always return an empty dataset. + * [METAMODEL-173] - Improved CSV writing to non-file destinations. Added .write() and .append() methods to Resource interface. + * [METAMODEL-170] - Dropped support for Java 6. + * [METAMODEL-176] - Trimmed the transient dependencies of the JDBC module. + * [METAMODEL-178] - Added AggregateFunction and ScalarFunction interfaces. Changed FunctionType enum to be super-interface of those. Compatibility is retained but a recompile of code using FunctionType is needed. + * [METAMODEL-188] - Changed OperatorType enum to be an interface. Compatibility is retained but a recompile of code is needed. + * [METAMODEL-179] - Ensured that HdfsResource is not closing a shared HDFS file system reference. + * [METAMODEL-171] - Made integration tests for Cassandra module function properly in all environments. + * [METAMODEL-177] - Fixed a bug pertaining to the serializability of HdfsResource. + * [METAMODEL-172] - ElasticSearch Date types should be converted properly. + * [METAMODEL-184] - ElasticSearch querying with "IS NULL" and "IS NOT NULL" now uses MissingFilter and ExistsFilter. + * [METAMODEL-190] - Improved decimal number support in Excel module. + * [METAMODEL-187] - Improved memory consumption of Excel module by passing random-access-file handles to POI when possible. + * [METAMODEL-191] - Resolved a number of dependency conflicts/overlaps when combining multiple MetaModel modules. + * [METAMODEL-157] - Fixed an issue in DELETE FROM statements with WHERE clauses requiring client-side data type conversion on JDBC databases. + * [METAMODEL-182] - Improved HdfsResource and FileResource directory-based implementations by adding also getSize() and getLastModified() directory-based implementations. + +### Apache MetaModel 4.3.6 + + * [METAMODEL-161] - Upgraded HBase client API to version 1.1.1 + * [METAMODEL-160] - Added support for Apache Hive via the JDBC module of MetaModel. + * [METAMODEL-162] - Made HdfsResource Serializable and added property getters + * [METAMODEL-163] - Made FileResource and HdfsResource work with folders containing file chunks instead of only single files + * [METAMODEL-104] - Added 'hadoop' and 'hbase' modules to dependencies of 'MetaModel-full'. + * [METAMODEL-164] - Fixed a bug in data type parsing of ElasticSearch mapping document. + +### Apache MetaModel 4.3.5 + + * [METAMODEL-148] - Added a 'hadoop' module with a HdfsResource class to allow CSV, Excel and Fixed-width file access on HDFS. + * [METAMODEL-152] - Fixed an issue of not clearing schema cache when refreshSchemas() is invoked. + * [METAMODEL-149] - Added support for COUNTER data type in Cassandra. + * [METAMODEL-151] - Added support for DOUBLE data type mapping in PostgreSQL + * [METAMODEL-154] - Use embedded Cassandra server for integration tests. + +### Apache MetaModel 4.3.4 + + * [METAMODEL-136] - Added LIKE operator native support (using conversion to regex) for MongoDB. + * [METAMODEL-138] - Allow empty characters before AS keyword in query parsing. + * [METAMODEL-141] - Improved mapping of ColumnType to SQL data types for Oracle, SQL Server, MySQL, DB2 and PostgreSQL + * [METAMODEL-142] - Ensured that JDBC schema refreshes in an UpdateScript is using same Connection/Transaction as rest of operations + * [METAMODEL-133] - Improved query parser support for multiple JOINs in same query. + * [METAMODEL-140] - Fixed support for ElasticSearch mappings with additional property attributes. + +### Apache MetaModel 4.3.3 + + * [METAMODEL-123] - Added compatibility with ElasticSearch version 1.4.x + * [METAMODEL-93] - Added compatibility with Apache HBase version 1.0.0 + * [METAMODEL-124] - Invoked ElasticSearch cross-version incompatible methods via reflection + * [METAMODEL-125] - Added support for comma-separated select items in Query.select(String) method argument. + * [METAMODEL-128] - Fixed bug in DataSet ordering when aggregation functions are applied to non-JDBC modules. + * [METAMODEL-131] - Added support for composite primary keys in JDBC CREATE TABLE statements. + +### Apache MetaModel 4.3.2 + + * [METAMODEL-78] - Fixed a bug that caused SELECT DISTINCT to sometimes return duplicates records on certain DataContext implementations. + * [METAMODEL-106] - Improved handling of invalid or non-existing index names passed to ElasticSearchDataContext + * [METAMODEL-79] - Added update execution support on ElasticSearch module. Increased capability of pushing down WHERE items to ElasticSearch searches. + * [METAMODEL-115] - Improved query parsing to allow lower-case function names, operators etc. + +### Apache MetaModel 4.3.1 + + * [METAMODEL-100] - Fixed bug when having multiple columns of same name. Added column no. comparison when calling Column.equals(...). + +### Apache MetaModel 4.3.0-incubating + + * [METAMODEL-77] - New module 'elasticsearch' for connecting and modeling ElasticSearch indexes through MetaModel. + * [METAMODEL-18] - New module 'cassandra' for connecting and modelling Apache Cassandra databases through MetaModel. + * [METAMODEL-83] - Added new operator types: GREATER_THAN_OR_EQUAL ('>=') and LESS_THAN_OR_EQUAL ('<='). + * [METAMODEL-92] - For JSON, MongoDB and CouchDB: Made it possible to specify column names referring nested fields such as "name.first" or "addresses[0].city". + * [METAMODEL-76] - Query parser improved to handle filters without spaces inbetween operator and operands. + * [METAMODEL-95] - Fixed a critical bug in the Salesforce.com module which caused all number values to be interpreted as '1'. + * [METAMODEL-74] - Fixed a bug related to skipping blank values when applying an aggregate function (SUM, AVG etc.) + * [METAMODEL-85] - Fixed a bug that caused NULL values to be evaluated with equal-sign in JDBC update and delete statements instead of 'IS NULL'. + +### Apache MetaModel 4.2.0-incubating + + * [METAMODEL-38] - New module 'json' for handling json files (containing JSON arrays of documents or line-delimited JSON documents) + * [METAMODEL-54] - ColumnType converted from enum to interface to allow for further specialization in modules. + * [METAMODEL-57] - Changed the column type VARCHAR into STRING for the modules: CSV, Fixedwidth, Excel and XML. + * [METAMODEL-56] - Made separate column types for converted JDBC LOBs - "CLOB as String" and "BLOB as bytes". + * [METAMODEL-46] - Improved row-lookup by primary key (ID) in CouchDB + * [METAMODEL-58] - Fixed a bug related to using CreateTable class and primary keys not getting created. + * [METAMODEL-3] - Improved writing of Byte-Order-Mark (BOM) for various encoding spelling variants. + * [METAMODEL-70] - Made the build compatible with both JDK versions 6 and 7. + * [METAMODEL-59] - Fixed a bug related to handling of date/time literals in MS SQL Server queries. + * [METAMODEL-60] - Fixed a bug related to DISTINCT and TOP keywords in MS SQL Server queries. + * [METAMODEL-45] - Improved and standardized way of handling integration test connection information towards external databases. + * [METAMODEL-62] - Fixed a bug related to fault-tolerant handling of malformed CSV lines when reading CSVs in single-line mode + * [METAMODEL-68] - Made it possible to create a CSV table without a header line in the file, if the user configures it. + * [METAMODEL-67] - Upgraded Jackson (JSON library) dependency from org.codehaus namespace to the newer com.fasterxml namespace. + * [METAMODEL-69] - Fixed issue with deserialization of ColumnType into the new interface instead of the old enum. + +### Apache MetaModel 4.1.0-incubating + + * [METAMODEL-13] - Added support for Apache HBase via the new module "MetaModel-hbase" + * [METAMODEL-41] - Added a parser for SimpleTableDef objects (SimpleTableDefParser). It parses statements similar to CREATE TABLE statements, although without the "CREATE TABLE" prefix. For example: foo (bar INTEGER, baz VARCHAR) + * [METAMODEL-11] - New module "MetaModel-spring" which adds a convenient FactoryBean to produce various types of DataContext objects based on externalizable parameters, for Spring framework users. + * [METAMODEL-32] - Fixed thread-safety issue in Excel module when tables (sheets) metadata is updated. + * [METAMODEL-47] - Fixed issue in Excel of loading schema if query is fired based on metadata from a previous DataContext instance. + * [METAMODEL-35] - Improved query rewriting for DB2 when paged queries contain ORDER BY clause. + * [METAMODEL-44] - Added an optional method for QueryPostprocessDataContext implementations to do a row-lookup by primary key value. + * [METAMODEL-43] - Made CSV datastores skip empty lines in file instead of treating them of rows with null values. + * [METAMODEL-39] - Added pooling of active/used Connections and PreparedStatements in JDBC compiled queries. + * [METAMODEL-34] - Updated LICENSE file to not include bundled dependencies' licenses. + * [METAMODEL-33] - Ensured that Apache Rat plugin for Maven is properly activated. + * [METAMODEL-37] - Removed old site sources from project. + +### Apache MetaModel 4.0.0-incubating + + * [METAMODEL-9] - SalesforceDataSet is throwing exception for insert sql of record having date/time. + * [METAMODEL-4] - Use folder name as schema name for file based DataContexts + * [METAMODEL-5] - Faster CsvDataContext implementation for single-line values + * [METAMODEL-26] - Provide endpoint URL with SalesforceDataContext + * Upgraded Apache POI dependency to v. 3.9 + * Improved fluent Query builder API by adding string parameter based methods for joining tables + * Added a utility ObjectInputStream for deserializing legacy MetaModel objects + * Performance improvement to CSV reading when values are only single line based + * Setting up the project on apache infrastructure + * [METAMODEL-10] - Exclude Jackcess dependency (Access module) from MetaModel + * Renaming the package hierarchy from org.eobjects.metamodel to org.apache.metamodel + * [METAMODEL-29] - Fixed issue in CreateTable builder class, causing it to only support a single column definition + * [METAMODEL-30] - Fixed issue with count(*) queries on CSV resources that does not provide a byte stream length http://git-wip-us.apache.org/repos/asf/metamodel/blob/152f8487/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java ---------------------------------------------------------------------- diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java index 2254617..5d5697e 100644 --- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java +++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcMetadataLoader.java @@ -149,6 +149,11 @@ final class JdbcMetadataLoader implements MetadataLoader { @Override public void loadIndexes(JdbcTable jdbcTable) { + final int identity = System.identityHashCode(jdbcTable); + if (_loadedIndexes.contains(identity)) { + return; + } + final Connection connection = _dataContext.getConnection(); try { loadIndexes(jdbcTable, connection); @@ -180,6 +185,11 @@ final class JdbcMetadataLoader implements MetadataLoader { @Override public void loadPrimaryKeys(JdbcTable jdbcTable) { + final int identity = System.identityHashCode(jdbcTable); + if (_loadedPrimaryKeys.contains(identity)) { + return; + } + final Connection connection = _dataContext.getConnection(); try { loadPrimaryKeys(jdbcTable, connection); @@ -268,6 +278,11 @@ final class JdbcMetadataLoader implements MetadataLoader { @Override public void loadColumns(JdbcTable jdbcTable) { + final int identity = System.identityHashCode(jdbcTable); + if (_loadedColumns.contains(identity)) { + return; + } + final Connection connection = _dataContext.getConnection(); try { loadColumns(jdbcTable, connection); @@ -384,6 +399,10 @@ final class JdbcMetadataLoader implements MetadataLoader { @Override public void loadRelations(JdbcSchema jdbcSchema) { + final int identity = System.identityHashCode(jdbcSchema); + if (_loadedRelations.contains(identity)) { + return; + } final Connection connection = _dataContext.getConnection(); try { loadRelations(jdbcSchema, connection);
