longint_builtins.sql 956 B

12345678910111213141516171819202122
  1. /* postgres can not */
  2. -- not supported on windows
  3. $value = "1000000000000";
  4. $negative = -1000000000000;
  5. $longint = YQL::StrictFromString($value, AsAtom("Decimal"), AsAtom("32"), AsAtom("0"));
  6. $negative_longint = CAST($negative AS Decimal(32,0));
  7. $add = $longint + CAST("1111111111111111111111111111111" AS Decimal(32,0));
  8. $div = $longint / CAST(1111 AS Decimal(32,0));
  9. $mod = $longint % CAST(1111 AS Decimal(32,0));
  10. $mul = $longint * CAST(333333333333333333 AS Decimal(32,0));
  11. $sub = $longint - CAST("1111111111111111111111111111111" AS Decimal(32,0));
  12. SELECT
  13. $longint AS binary,
  14. YQL::ToString(YQL::Dec($longint)) AS to_string,
  15. CAST(YQL::Inc(Abs($negative_longint)) AS String) AS abs,
  16. CAST(YQL::Minus($add) AS String) AS add,
  17. CAST($div AS String) AS div,
  18. CAST($mod AS String) AS mod,
  19. CAST($mul AS String) AS mul,
  20. CAST($sub AS String) AS sub,
  21. $longint == YQL::Abs($negative_longint) AS eq,
  22. $div <= $longint AS cmp;