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) <[email protected]> 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
