You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2021/11/04 10:32:30 UTC

[tinkerpop] 06/07: Update the type cast description for integer/float values

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit eb2e20d2be2463b6776c07e3312b4a843638228e
Author: Norio Akagi (norakagi) <no...@amazon.com>
AuthorDate: Thu Oct 28 14:36:43 2021 -0700

    Update the type cast description for integer/float values
---
 docs/src/dev/future/equality_proposal.asciidoc | 36 +++++++++++++++++++-------
 1 file changed, 27 insertions(+), 9 deletions(-)

diff --git a/docs/src/dev/future/equality_proposal.asciidoc b/docs/src/dev/future/equality_proposal.asciidoc
index dee44d6..16d5808 100644
--- a/docs/src/dev/future/equality_proposal.asciidoc
+++ b/docs/src/dev/future/equality_proposal.asciidoc
@@ -384,20 +384,38 @@ Also note that TinkerPop is Java based and we have Double.NaN and Float.NaN, ±D
 === Types
 First we need to define which data types the TinkerPop query execution runtime needs to handle. It is JVM based so as a primitive type, we are using the following types:
 
-* Byte: 8-bit signed two's complement integer
 * Boolean: true or false
-* Short: 16-bit signed two's complement integer
-* Integer: 32-bit signed two's complement integer.
-* Long: 64-bit signed two's complement integer.
-* Float: https://en.wikipedia.org/wiki/Single-precision_floating-point_format[single-precision 32-bit IEEE 754 floating point]
-* Double: https://en.wikipedia.org/wiki/Double-precision_floating-point_format[double-precision 64-bit IEEE 754 floating point]
-* BigInteger
-* BigDecimal
+* Integer
+  ** int8
+  ** int16 (short)
+  ** int32
+  ** int64 (long)
+  ** uint8 (byte)
+  ** uint16
+  ** uint32
+  ** uint64
+  ** BigInt
+* Float
+  ** float32
+  ** float64 (double)
+  *** In Double and Float, we have a concept of INFINITY / https://en.wikipedia.org/wiki/Signed_zero[signed-zero], and NaN.
+  ** BigFloat
 * String / Char
 * UUID
 * Date
 
-Note that in Double or Float, we have a concept of INFINITY / https://en.wikipedia.org/wiki/Signed_zero[signed-zero], and NaN.
+Graph providers may not support all of these types depending on the architecture and implementation. Therefore TinkerPop must provide a way for Graph providers to override the behavior while it has its own default behavior. Also when some types are not supported Graph providers needs to map unsupported types into supported types internally. This mapping can be done in either information-preserving manner or non-preserving manner. Graph providers must tell which mapping they support throu [...]
+
+* Which atomic types are supported
+  ** Boolean, Integer, Float, String, UUID and Date
+  ** TinkerPop by default supports all of them
+* Which integer types are supported
+  ** int8, int16, int32, int64, uint8, uint16, uint32, uint64, BigInt
+  ** TinkerPop by default supports uint8 (byte), int16 (short), int32 (int), int64 (long) and BigInt
+* Which float types are supported
+  ** float32, float64 and BigFloat
+  ** TinkerPop by defualt supports all as float, double, and BigDecimal in Java
+
 In addition to these, there are composite types as follows:
 
 * Vertex