[CARBONDATA-4091] support prestosql 333 integartion with carbon 4200/head
authorajantha-bhat <ajanthabhat@gmail.com>
Mon, 9 Mar 2020 10:51:41 +0000 (16:21 +0530)
committerIndhumathi27 <indhumathim27@gmail.com>
Wed, 11 Aug 2021 09:42:21 +0000 (15:12 +0530)
commit1ccf295340611c9870e24112b532fd3cfdd821ad
treeed966cac0c123129b8601e08d7d7f4783d18364a
parentbdd4a8cb5599062c066b5318ff5ce0488eb6b290
[CARBONDATA-4091] support prestosql 333 integartion with carbon

Why is this PR needed?
Currently carbondata is integrated with presto-sql 316, which is 1.5 years older.
There are many good features and optimization that came into presto
like dynamic filtering, Rubix data cache and some performance improvements.

It is always good to use latest version, latest version is presto-sql 348.
But jumping from 316 to 348 will be too many changes.
So, to utilize these new features and based on customer demand, I suggest
to upgrade presto-sql to 333 version. Later it will be again upgraded
to more latest version in few months.

Note:
This is a plain integration to support all existing features of presto316,
deep integration to support new features like dynamic filtering,
Rubix cache will be handled in another PR.

What changes were proposed in this PR?
1. Adapt to the new hive adapter changes like some constructor changes,
   Made a carbonDataConnector to support CarbonDataHandleResolver
2. Java 11 removed ConstructorAccessor class, so using unsafe class for
   reflection. (presto333 depend on java 11 for runtime)
3. POM changes to support presto333

Note: JAVA 11 environment is needed for running presto333 with carbon and also
need add this jvm property "--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED"

This closes #4034
19 files changed:
docs/prestosql-guide.md
integration/presto/pom.xml
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbonDataConnector.java [new file with mode: 0755]
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbonDataFileWriter.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbonDataFileWriterFactory.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbonDataLocationService.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbonDataMetaData.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbonDataPageSinkProvider.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbonDataWriterFactory.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbonMetadataFactory.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbondataConnectorFactory.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbondataModule.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbondataPageSource.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbondataPageSourceProvider.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbondataPlugin.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/CarbondataSplitManager.java
integration/presto/src/main/prestosql/org/apache/carbondata/presto/InternalCarbonDataConnectorFactory.java [new file with mode: 0755]
integration/presto/src/test/prestosql/org/apache/carbondata/presto/server/PrestoServer.scala
pom.xml