Skip to content

elb3k/pgsql-arraymath

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pgsql-arraymath

Functions and operators for element-by-element math and logic on arrays. The operators are all the usual ones, but prefixed by @ to indicate their element-by-element nature.

  • @= element-by-element equality, returns boolean[]
  • @< element-by-element less than, returns boolean[]
  • @> element-by-element greater than, returns boolean[]
  • @<= element-by-element less than or equals, returns boolean[]
  • @>= element-by-element greater than or equals, returns boolean[]
  • @+ element-by-element addition
  • @- element-by-element subtraction
  • @* element-by-element multiplication
  • @/ element-by-element division

Array versus Constant

If you apply the operators with an array on one side and a constant on the other, the constant will be applied to all the elements of the array. For example:

SELECT ARRAY[1,2,3,4] @< 4;

  {t,t,t,f}

SELECT ARRAY[3.4,5.6,7.6] @* 8.1;

  {27.54,45.36,61.56}

Array versus Array

If you apply the operators with an array on both sides, the operator will be applied to each element pairing in turn, returning an array as long as the larger of the two inputs. Where the shorter array runs out of elements, the process will simply move back to the start of the array. For example:

SELECT ARRAY[1,2] @+ ARRAY[3,4];

  {4,6}
  
SELECT ARRAY[1,2,3,4,5,6] @* ARRAY[1,2];

  {1,4,3,8,5,12}
  
SELECT ARRAY[1,1,1,1] @< ARRAY[0,2];

  {f,t,f,t}

SELECT ARRAY[1,2,3] @= ARRAY[3,2,1];

  {f,t,f}

About

Functions and operators for element-by-element math and logic on arrays

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 64.3%
  • TSQL 34.9%
  • Makefile 0.8%