Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EDT:EGL Language Primitive Types"

(Primitive Types (Table 3))
Line 30: Line 30:
 
| <br>  
 
| <br>  
 
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352020 Dictionary Support]<br>  
 
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352020 Dictionary Support]<br>  
| <br>
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352362 Dictionary Support]
 
| <br>
 
| <br>
 
|-
 
|-
Line 37: Line 37:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| <br>  
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352364 Limited string support]<br>  
 
| <br>
 
| <br>
 
|-
 
|-
Line 51: Line 51:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| <br>  
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352366 Timestamp with pattern support]<br>  
 
| <br>
 
| <br>
 
|-
 
|-
Line 58: Line 58:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| <br>  
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352365 Timestamp without pattern support]<br>  
 
| <br>
 
| <br>
 
|-
 
|-
Line 65: Line 65:
 
| <br>  
 
| <br>  
 
| N/S<br>  
 
| N/S<br>  
| <br>  
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352367 Blob support]<br>  
 
| <br>
 
| <br>
 
|-
 
|-
Line 72: Line 72:
 
| <br>  
 
| <br>  
 
| N/S<br>  
 
| N/S<br>  
| <br>  
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352368 Clob support]<br>  
 
| <br>
 
| <br>
 
|-
 
|-
Line 128: Line 128:
 
| <br>  
 
| <br>  
 
| done<br>  
 
| done<br>  
| <br>  
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352370 Generic number support]<br>  
 
| <br>
 
| <br>
 
|-
 
|-
Line 135: Line 135:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| <br>  
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352371 Bytes with length support]<br>  
 
| <br>
 
| <br>
 
|-
 
|-
Line 142: Line 142:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| <br>  
+
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=352372 Bytes without length support]<br>  
 
| <br>
 
| <br>
 
|-
 
|-

Revision as of 12:50, 18 July 2011

Please see the parent of this page, EDT:EGL Language.

Primitive Types (Table 3)

Primitive Types Value or Reference? Core JavaScript
Nullable Types
Java Debug
Any reference

done
done
Boolean value8
done
done
done
Dictionary reference
Dictionary Support
Dictionary Support
String(N) reference

Limited string support

String reference
done
done
done
Timestamp(pattern)1 value8

Timestamp with pattern support

Timestamp1,6 reference

Timestamp without pattern support

Blob reference
N/S
Blob support

Clob reference
N/S
Clob support

Smallint value8
done
done
done
Int value8
done
done
done
Bigint value8
done
done
done
Decimal(N,M)7 value8
done
done
done
Decimal2 reference
done
done
done
Float value8
done
done
done
Smallfloat value8
done
done
done
Number3 reference
done
Generic number support

Bytes(N)4 value8

Bytes with length support

Bytes5 reference

Bytes without length support

Arraydictionary

N/S N/S N/S
Char

N/S N/S N/S
Dbchar

N/S N/S N/S
Mbchar

N/S N/S N/S
Unicode

N/S N/S N/S
Hex4

N/S N/S N/S
Date1

N/S N/S N/S
Time1

N/S N/S N/S
Interval1

N/S N/S N/S
Bin

N/S N/S N/S
Num

N/S N/S N/S
Numc

N/S N/S N/S
Pacf

N/S N/S N/S
Money

N/S N/S N/S

Notes on Table 3

  1. Timestamp is the only supported date/time type. Use it in place of RBD's date, time, and interval.
  2. Decimal with no length or decimals is a reference type with an immutable value.
  3. Number is a reference type with an immutable value. Unlike in RBD, number variables can be declared anywhere a variable declaration is allowed.
  4. Bytes(N) is a value type similar to RBD's hex. N indicates the number of bytes in the value. (In RBD, the length of a hex is the number of nibbles not the nubmer of bytes.)
  5. Bytes with no length is a reference type with an immutable value of any length.
  6. Timestamp with no pattern is a reference type in EDT.  It can hold any timestamp value.
  7. As in RBD, it's OK to only specify the length when using the decimal type. Decimal(N) is internally mapped to decimal(N,0).
  8. Value types may be nullable.

More about the Bytes type

Bytes is meant to hold data with no particular format.

Assignment between two bytes values with no length is a reference assignment. Assignment between two bytes values when one or both has a length is a value assignment (data is copied). If the source is longer bytes on its right side are truncated. If the source is shorter then we don't add padding: we just don't update what was there before. For example if your bytes(3) is 0x123456 and you assign it a bytes(1) value of 0x99 then the bytes(3) ends up with 0x993456.

In order for two bytes values to be compared, they must both have a size, and the sizes must be equal. The comparison is done one byte at a time, from left to right, until a difference is found. The operand with a one instead of a zero is greater.

The bytes type supports the substring operator. The type of the result is bytes (with no length).

Back to the top