Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebasing master on top of transport-api-v1 #94

Merged
merged 49 commits into from
Oct 12, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
2b9da11
Disable Jacoco for platform tests (#37)
shardulm94 Feb 3, 2020
edd7db6
0.0.46 release (previous 0.0.45) + release notes updated [ci skip]
shipkit-org Feb 3, 2020
50326fe
Fixed presto UDF patch broken link (#41)
Mar 12, 2020
08be012
FileSystemUtils: remove an unreliable check for unit testing (#42)
SurenNihalani Apr 1, 2020
56ad907
0.0.47 release (previous 0.0.46) + release notes updated [ci skip]
shipkit-org Apr 1, 2020
c11f77d
Presto: Pass custom configuration object when using FileSystemUtils (…
shardulm94 Apr 14, 2020
2db1d70
0.0.48 release (previous 0.0.47) + release notes updated [ci skip]
shipkit-org Apr 14, 2020
7b123b3
Presto: Make ScalarFunctionImplementation state independent of StdUdf…
shardulm94 Apr 30, 2020
0df29c7
0.0.49 release (previous 0.0.48) + release notes updated [ci skip]
shipkit-org Apr 30, 2020
0961752
Upgrade to PrestoSQL 333 (#45)
lxynov May 8, 2020
5c1b84a
0.0.50 release (previous 0.0.49) + release notes updated [ci skip]
shipkit-org May 8, 2020
b08e633
Add support for StdFloat, StdDouble, and StdBinary (#46)
khaitranq Jun 23, 2020
75f4b24
0.0.51 release (previous 0.0.50) + release notes updated [ci skip]
shipkit-org Jun 23, 2020
e9def3e
Allow users to override main and test source set names, output direct…
jjoyce0510 Jun 26, 2020
cf2005e
0.0.52 release (previous 0.0.51) + release notes updated [ci skip]
shipkit-org Jun 26, 2020
638796b
Empty commit to release new version
shardulm94 Jun 30, 2020
92e9b21
Empty commit to release new version [ci skip-compare-publications]
shardulm94 Jun 30, 2020
6fc9a92
0.0.53 release (previous 0.0.52) + release notes updated [ci skip]
shipkit-org Jun 30, 2020
c181a5d
Plugin: Publish Presto thin jar which allows consumers to control dep…
shardulm94 Aug 10, 2020
e458f0a
0.0.54 release (previous 0.0.53) + release notes updated [ci skip]
shipkit-org Aug 10, 2020
9d6dfac
Hive: Struct data should not be converted to object array during StdS…
shardulm94 Aug 13, 2020
da5c54b
Remove slf4j-log4j12 from Transport dependency graph (#51)
shardulm94 Aug 13, 2020
d1b406b
Bump shipkit (#54)
shardulm94 Aug 13, 2020
8ad919d
0.0.55 release (previous 0.0.54) + release notes updated [ci skip]
shipkit-org Aug 13, 2020
9139512
Fix test SQL generation for binary inputs (#55)
shardulm94 Aug 17, 2020
de72ccf
0.0.56 release (previous 0.0.55) + release notes updated [ci skip]
shipkit-org Aug 17, 2020
5702f7a
Spark: Create index-based iterator for non-mutable map keySet and val…
raymondlam12 Sep 23, 2020
19006c2
0.0.57 release (previous 0.0.56) + release notes updated [ci skip]
shipkit-org Sep 23, 2020
466dbae
Avro: Support simple union schemas (#60)
khaitranq Nov 3, 2020
ce14537
0.0.58 release (previous 0.0.57) + release notes updated [ci skip]
shipkit-org Nov 4, 2020
7fc04aa
Support conversion of String type to Utf8 in AvroWrapper (#61)
curtiscwang Nov 10, 2020
0c2cc3d
0.0.59 release (previous 0.0.58) + release notes updated [ci skip]
shipkit-org Nov 10, 2020
9db51ec
Add Avro ENUM read support and fix String bug (#62)
raymondlam12 Nov 18, 2020
5b5740e
0.0.60 release (previous 0.0.59) + release notes updated [ci skip]
shipkit-org Nov 18, 2020
71825df
Build: Fail if there are checkstyle violations (#64)
cwsteinbach Nov 25, 2020
69fb8d2
0.0.61 release (previous 0.0.60) + release notes updated [ci skip]
shipkit-org Nov 26, 2020
09a8950
Add travis-build.sh for pre-commit testing from command line (#65)
cwsteinbach Nov 26, 2020
da82934
Upgrade to Gradle 6.7 (#67)
akshayrai Apr 15, 2021
dd6e2a7
Support builds with platform specific JDK (#69)
akshayrai Apr 26, 2021
1773505
Bump Avro dependency to 1.10.2 (from 1.7.7). (#71)
srramach Apr 29, 2021
92dfbbf
Migrate from PrestoSQL to Trino (#68)
akshayrai May 6, 2021
6974248
Automate artifact publication to Maven Central (#72)
rzhang10 May 12, 2021
7ed5d9c
Update ci.yml java version to 8 (#77)
rzhang10 May 13, 2021
2163ec2
Fix org.pentaho:pentaho-aggdesigner-algorithm sunset problem (#78)
kxu1026 Jun 17, 2021
7eff396
Remove travis build in favor of github actions (#87)
HotSushi Aug 5, 2021
8be2838
Add scala_2.11 and scala_2.12 support (#85)
HotSushi Aug 6, 2021
a8dbf65
Update ci.yml to also build the udf-examples folder (#90)
maluchari Aug 20, 2021
658a893
Fix running multiple builds in run step in workflow action (#92)
maluchari Aug 20, 2021
d919f96
A solution to fix running multiple UDFs in Spark issue (#93)
kxu1026 Aug 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#
# CI build that assembles artifacts and runs tests.
# If validation is successful this workflow releases from the main dev branch.
#
# - skipping CI: add [skip ci] to the commit message
# - skipping release: add [skip release] to the commit message
#
name: CI

on:
push:
branches: ['master']
tags-ignore: [v*] # release tags are autogenerated after a successful CI, no need to run CI against them
pull_request:
branches: ['**']

jobs:

build:
runs-on: ubuntu-latest
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"

steps:

- name: 1. Check out code
uses: actions/checkout@v2 # https://github.com/actions/checkout
with:
fetch-depth: '0' # https://github.com/shipkit/shipkit-changelog#fetch-depth-on-ci

- name: 2. Setup Java JDK
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'

- name: 3. Perform build
run: |
./gradlew build
./gradlew -p transportable-udfs-examples clean build -s

- name: 4. Perform release
# Release job, only for pushes to the main development branch
if: github.event_name == 'push'
&& github.ref == 'refs/heads/master'
&& github.repository == 'linkedin/transport'
&& !contains(toJSON(github.event.commits.*.message), '[skip release]')

run: ./gradlew githubRelease publishToSonatype closeAndReleaseStagingRepository
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
SONATYPE_USER: ${{secrets.SONATYPE_USER}}
SONATYPE_PWD: ${{secrets.SONATYPE_PWD}}
PGP_KEY: ${{secrets.PGP_KEY}}
PGP_PWD: ${{secrets.PGP_PWD}}
25 changes: 0 additions & 25 deletions .travis.yml

This file was deleted.

18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
**Transport** is a framework for writing performant user-defined
functions (UDFs) that are portable across a variety of engines
including [Apache Spark](https://spark.apache.org/), [Apache Hive](https://hive.apache.org/), and
[Presto](https://prestodb.io/). Transport UDFs are also
[Trino](https://trino.io/). Transport UDFs are also
capable of directly processing data stored in serialization formats such as
Apache Avro. With Transport, developers only need to implement their UDF
logic once using the Transport API. Transport then takes care of
translating the UDF to native UDF version targeted at various engines
or formats. Currently, Transport is capable of generating
engine-artifacts for Spark, Hive, and Presto, and format-artifacts for
engine-artifacts for Spark, Hive, and Trino, and format-artifacts for
Avro. Further details on Transport can be found in this [LinkedIn Engineering blog post](https://engineering.linkedin.com/blog/2018/11/using-translatable-portable-UDFs).

## Documentation
Expand Down Expand Up @@ -127,7 +127,7 @@ to familiarize yourself with the API, and how to write new UDFs.
to find out how to write UDF tests in a unified testing API, but have the framework test them on multiple platforms.

* Root [`build.gradle`](transportable-udfs-examples/build.gradle) file
to find out how to apply the `transport` plugin, which enables generating Hive, Spark, and Presto UDFs out of
to find out how to apply the `transport` plugin, which enables generating Hive, Spark, and Trino UDFs out of
the transportable UDFs you define once you build your project. To see that in action:

Change directory to `transportable-udfs-examples`:
Expand All @@ -153,7 +153,7 @@ The results should be like:

```
transportable-udfs-example-udfs-hive.jar
transportable-udfs-example-udfs-presto.jar
transportable-udfs-example-udfs-trino.jar
transportable-udfs-example-udfs-spark.jar
transportable-udfs-example-udfs.jar
```
Expand All @@ -162,13 +162,13 @@ That is it! While only one version of the UDFs is implemented, multiple jars are
Each of those jars uses native platform APIs and data models to implement the UDFs. So from an execution engine's perspective,
there is no data transformation needed for interoperability or portability. Only suitable classes are used for each engine.

To call those jars from your SQL engine (i.e., Hive, Spark, or Presto), the standard process for deploying UDF jars is followed
To call those jars from your SQL engine (i.e., Hive, Spark, or Trino), the standard process for deploying UDF jars is followed
for each engine. For example, in Hive, you add the jar to the classpath using the `ADD JAR` statement,
and register the UDF using `CREATE FUNCTION` statement.
In Presto, the jar is deployed to the `plugin` directory. However, a small patch is required for the Presto
engine to recognize the jar as a plugin, since the generated Presto UDFs implement the `SqlScalarFunction` API,
which is currently not part of Presto's SPI architecture. You can find the patch [here](transportable-udfs-documentation/transport-udfs-presto.patch) and apply it
before deploying your UDFs jar to the Presto engine.
In Trino, the jar is deployed to the `plugin` directory. However, a small patch is required for the Trino
engine to recognize the jar as a plugin, since the generated Trino UDFs implement the `SqlScalarFunction` API,
which is currently not part of Trino's SPI architecture. You can find the patch [here](docs/transport-udfs-trino.patch) and apply it
before deploying your UDFs jar to the Trino engine.

## Contributing
The project is under active development and we welcome contributions of different forms:
Expand Down
27 changes: 25 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,18 @@ buildscript {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4'
classpath 'org.github.ngbinh.scalastyle:gradle-scalastyle-plugin_2.11:1.0.1'
classpath 'gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0'
classpath "io.github.gradle-nexus:publish-plugin:1.0.0"
classpath "org.shipkit:shipkit-auto-version:1.1.1"
classpath "org.shipkit:shipkit-changelog:1.1.10"
}
}

plugins {
id "org.shipkit.java" version "2.0.31"
id "checkstyle"
}

apply from: "gradle/shipkit.gradle"

allprojects {
group = 'com.linkedin.transport'
apply plugin: 'idea'
Expand Down Expand Up @@ -48,19 +53,37 @@ subprojects {
strictCheck true
}

configurations {
all {
// Transport as a library should only expose slf4j-api to its consumers and should not keep any SLF4J bindings
// in its dependency graph
// Quote from http://www.slf4j.org/faq.html#maven2
// "Thus, as far as your users are concerned you are exporting slf4j-api as a transitive dependency of your
// library, but not any SLF4J-binding or any underlying logging system."
// Our dependencies (e.g. hadoop-common) do bring in slf4j-log4j12 in their dependency graph so we exclude them
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
}
}

plugins.withType(JavaPlugin) {
project.apply(plugin: 'checkstyle')

dependencies {
testCompile 'org.testng:testng:6.11'
testCompile 'org.slf4j:slf4j-simple:1.7.25'
}

test {
useTestNG()
}

checkstyle {
configFile = file("${rootDir}/gradle/checkstyle/linkedin-checkstyle.xml")
configFile = rootProject.file('gradle/checkstyle/checkstyle.xml')
configProperties = [
'configDir': rootProject.file('gradle/checkstyle'),
'baseDir': rootDir
]
toolVersion '8.23'
}
}

Expand Down
7 changes: 4 additions & 3 deletions defaultEnvironment.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ subprojects {
url "https://conjars.org/repo"
}
}
project.ext.setProperty('presto-version', '319')
project.ext.setProperty('airlift-slice-version', '0.33')
project.ext.setProperty('trino-version', '352')
project.ext.setProperty('airlift-slice-version', '0.39')
project.ext.setProperty('spark-group', 'org.apache.spark')
project.ext.setProperty('spark-version', '2.3.0')
project.ext.setProperty('spark2-version', '2.3.0')
project.ext.setProperty('spark3-version', '3.1.1')
}
67 changes: 67 additions & 0 deletions docs/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,72 @@
<sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>

#### 0.0.61
- 2020-11-26 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.60...v0.0.61) by [Carl Steinbach](https://github.com/cwsteinbach) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.61-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.61)
- Fail build if there are checkstyle violations [(#64)](https://github.com/linkedin/transport/pull/64)

#### 0.0.60
- 2020-11-18 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.59...v0.0.60) by [Raymond](https://github.com/raymondlam12) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.60-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.60)
- Add Avro ENUM read support. [(#62)](https://github.com/linkedin/transport/pull/62)

#### 0.0.59
- 2020-11-10 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.58...v0.0.59) by [curtiscwang](https://github.com/curtiscwang) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.59-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.59)
- Support conversion of String type to Utf8 in AvroWrapper [(#61)](https://github.com/linkedin/transport/pull/61)

#### 0.0.58
- 2020-11-04 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.57...v0.0.58) by [Khai Tran](https://github.com/khaitranq) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.58-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.58)
- Support simple Avro Union schema [(#60)](https://github.com/linkedin/transport/pull/60)

#### 0.0.57
- 2020-09-23 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.56...v0.0.57) by [Raymond](https://github.com/raymondlam12) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.57-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.57)
- Create a MutableMap when accessing keySet and values in SparkMap [(#58)](https://github.com/linkedin/transport/pull/58)

#### 0.0.56
- 2020-08-17 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.55...v0.0.56) by [Shardul Mahadik](https://github.com/shardulm94) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.56-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.56)
- Fix test SQL generation for binary inputs [(#55)](https://github.com/linkedin/transport/pull/55)

#### 0.0.55
- 2020-08-13 - [3 commits](https://github.com/linkedin/transport/compare/v0.0.54...v0.0.55) by [Shardul Mahadik](https://github.com/shardulm94) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.55-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.55)
- Bump shipkit version [(#54)](https://github.com/linkedin/transport/pull/54)
- Remove slf4j-log4j12 from Transport dependency graph [(#51)](https://github.com/linkedin/transport/pull/51)
- Hive: Struct data should not be converted to object array during StdStruct creation [(#50)](https://github.com/linkedin/transport/pull/50)

#### 0.0.54
- 2020-08-10 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.53...v0.0.54) by [Shardul Mahadik](https://github.com/shardulm94) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.54-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.54)
- Publish Presto thin jar which allows consumers to control dependency graph [(#49)](https://github.com/linkedin/transport/pull/49)

#### 0.0.53
- 2020-06-30 - [2 commits](https://github.com/linkedin/transport/compare/v0.0.52...v0.0.53) by [Shardul Mahadik](https://github.com/shardulm94) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.53-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.53)
- No pull requests referenced in commit messages.

#### 0.0.52
- 2020-06-26 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.51...v0.0.52) by [John Joyce](https://github.com/jjoyce0510) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.52-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.52)
- No pull requests referenced in commit messages.

#### 0.0.51
- 2020-06-23 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.50...v0.0.51) by [Khai Tran](https://github.com/khaitranq) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.51-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.51)
- Add support for StdFloat, StdDouble, and StdBinary [(#46)](https://github.com/linkedin/transport/pull/46)

#### 0.0.50
- 2020-05-08 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.49...v0.0.50) by [Xingyuan Lin](https://github.com/lxynov) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.50-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.50)
- Upgrade to PrestoSQL 333 [(#45)](https://github.com/linkedin/transport/pull/45)

#### 0.0.49
- 2020-04-30 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.48...v0.0.49) by [Shardul Mahadik](https://github.com/shardulm94) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.49-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.49)
- Presto: Make ScalarFunctionImplementation state independent of StdUdfWrapper [(#44)](https://github.com/linkedin/transport/pull/44)

#### 0.0.48
- 2020-04-14 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.47...v0.0.48) by [Shardul Mahadik](https://github.com/shardulm94) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.48-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.48)
- Presto: Pass custom configuration object when using FileSystemUtils [(#43)](https://github.com/linkedin/transport/pull/43)

#### 0.0.47
- 2020-04-01 - [2 commits](https://github.com/linkedin/transport/compare/v0.0.46...v0.0.47) by [Suren Nihalani](https://github.com/SurenNihalani) (1), [Sushant Raikar](https://github.com/HotSushi) (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.47-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.47)
- FileSystemUtils: remove an unreliable check for unit testing [(#42)](https://github.com/linkedin/transport/pull/42)
- Fixed Presto UDF patch's broken link [(#41)](https://github.com/linkedin/transport/pull/41)

#### 0.0.46
- 2020-02-03 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.45...v0.0.46) by [Shardul Mahadik](https://github.com/shardulm94) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.46-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.46)
- Disable Jacoco for platform tests [(#37)](https://github.com/linkedin/transport/pull/37)

#### 0.0.45
- 2020-01-14 - [1 commit](https://github.com/linkedin/transport/compare/v0.0.44...v0.0.45) by [Suren Nihalani](https://github.com/SurenNihalani) - published to [![Bintray](https://img.shields.io/badge/Bintray-0.0.45-green.svg)](https://bintray.com/linkedin-transport/maven/transport/0.0.45)
- Allow for absolute paths instead of assuming defaultFS in UDF's required files [(#33)](https://github.com/linkedin/transport/pull/33)
Expand Down
19 changes: 15 additions & 4 deletions docs/transport-udfs-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ The `StdType` interface is the parent class of all type objects that
are used to describe the schema of the data objects that can be
manipulated by `StdUDFs`. Sub-interfaces of this interface include
`StdIntegerType`, `StdBooleanType`, `StdLongType`, `StdStringType`,
`StdArrayType`, `StdMapType`, `StdStructType`. Each sub-interface is
`StdDoubleType`, `StdFloatType`, `StdBinaryType`, `StdArrayType`,
`StdMapType`, and `StdStructType`. Each sub-interface is
defined by methods that are specific to the corresponding type. For
example, `StdMapType` interface is defined by the two methods shown
below. The `keyType()` and `valueType()` methods can be used to obtain
Expand Down Expand Up @@ -39,9 +40,10 @@ public interface StdStructType extends StdType {
manipulated by Transport UDFs. As a top-level interface, `StdData`
itself does not contain any methods. A number of type-specific
interfaces extend `StdData`, such as `StdInteger`, `StdLong`,
`StdBoolean`, `StdString`, `StdArray`, `StdMap`, `StdStruct` to
represent `INTEGER`, `LONG`, `BOOLEAN`, `VARCHAR`, `ARRAY`, `MAP`,
`STRUCT` SQL types respectively. Each of those interfaces exposes
`StdBoolean`, `StdString`, `StdDouble`, `StdFloat`, `StdBinary`,
`StdArray`, `StdMap`, and `StdStruct` to represent `INTEGER`,
`LONG`, `BOOLEAN`, `VARCHAR`, `DOUBLE`, `REAL`, `VARBINARY`, `ARRAY`, `MAP`,
and `STRUCT` SQL types respectively. Each of those interfaces exposes
operations that can manipulate that type of data. For example,
`StdMap` interface is defined by the following methods:

Expand Down Expand Up @@ -108,6 +110,12 @@ definition:
is StdInteger.
* `"boolean"`: to represent SQL Boolean type. The respective Standard
Type is StdBoolean.
* `"double"`: to represent SQL Double type. The respective Standard
Type is StdDouble.
* `"real"`: to represent SQL Real type. The respective Standard
Type is StdFloat.
* `"varbinary"`: to represent SQL Binary type. The respective Standard
Type is StdBinary.
* `"array(T)"`: to represent SQL Array type, with elements of type
T. The respective Standard Type is StdArray.
* `"map(K,V)"`: to represent SQL Map type, with keys of type K and
Expand All @@ -132,6 +140,9 @@ public interface StdFactory {
StdLong createLong(long value);
StdBoolean createBoolean(boolean value);
StdString createString(String value);
StdDouble createDouble(double value);
StdFloat createFloat(float value);
StdBinary createBinary(ByteBuffer value);
StdArray createArray(StdType stdType, int expectedSize);
StdArray createArray(StdType stdType);
StdMap createMap(StdType stdType);
Expand Down
Loading