Opened 4 years ago

Last modified 4 years ago

#31839 closed New feature

Add additional database functions. — at Version 3

Reported by: Nick Pope Owned by: Nick Pope
Component: Database layer (models, ORM) Version: dev
Severity: Normal Keywords: functions, random, truncate, log2, log10, bit length, octet length, hyperbolic
Cc: Triage Stage: Unreviewed
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Nick Pope)

I propose adding some additional database functions:

  • Random -- generate random numbers in the range [0.0, 0.1).
  • Truncate -- round number towards zero. (SQL function is TRUNC, but Trunc is used for date truncation in Django.)
  • Log2 and Log10 -- simple logarithm functions without needing to provide the base.
  • ACosh, ASinh, ATanh, Cosh, Sinh, and Tanh -- hyperbolic functions.
  • BitLength and ByteLength -- length of string in bits and bytes, complement to Length which is character length.

Change History (3)

comment:1 by Nick Pope, 4 years ago

Has patch: set

comment:2 by Mariusz Felisiak, 4 years ago

I'm not sure if it's worth adding extra database functions:

  • Log2 and Log10 can be achieved with proving base to Log so I'm against them,
  • hyperbolic functions are supported only on PostgreSQL 12+, we need to emulate them on other DBs, it's not worth, IMO,
  • BitLength and OctetLength will probably not work on Oracle.

Truncate and Random sound reasonable.

Last edited 4 years ago by Mariusz Felisiak (previous) (diff)

comment:3 by Nick Pope, 4 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top