Resources
Differences Between Oxla vs. PostgreSQL
1. Functions
a) Mathematical
A mathematical function operates on input values provided as arguments and returns a numeric value as the operation’s output.
Mathematical | Description | Example | Available in Oxla |
---|---|---|---|
ABS | Returns the absolute value of a number. | SELECT ABS(-11); | Available |
CEIL | Returns the value after rounding up any positive or negative value to the nearest largest integer. | SELECT CEIL(53.7); | Available |
FLOOR | Returns the value after rounding up any positive or negative decimal value as smaller than the argument. | SELECT FLOOR(53.6); | Available |
LN | Returns the natural logarithm of a given number. | SELECT LN(3); | Available |
RANDOM | Returns the random value between 0 and 1. | SELECT RANDOM(); | Available |
SQRT | Returns the square root of a given positive number. | SELECT SQRT(225); | Available |
b) Trigonometric
Trigonometric | Description | Example | Available in Oxla |
---|---|---|---|
SIN | Returns the sine of the specified radian. | SELECT sin(0.2); | Available |
2. Operators
Below is a list of math operators available in PostgreSQL:
Operators | Description | Example | Result | Available in Oxla | Note |
---|---|---|---|---|---|
+ | Addition | SELECT 5+8; | 13 | Available | |
SELECT 5 + 8; | |||||
SELECT 5+ 8; | |||||
SELECT 5 +8; | |||||
- | Subtraction | SELECT 2 - 3; | -1 | Available | |
SELECT 2+-3; | |||||
- | Negation | SELECT -4; | -4 | Available | |
SELECT -(-4); | 4 | ||||
SELECT 5+(-2); | 3 | ||||
SELECT 5-(-2); | 7 | ||||
* | Multiplication | SELECT 3*3; | 9 | Available | |
SELECT 3 + 3; | |||||
SELECT 3+ 3; | |||||
SELECT 3 +3; | |||||
/ | Division | SELECT 10/2; | 5 | Available | |
SELECT 10 / 2; | |||||
SELECT 10/ 2; | |||||
SELECT 10 /2; | |||||
% | Modulo | SELECT 20%3; | 2 | Available | |
SELECT 20 % 3; | |||||
SELECT 20% 3; | |||||
SELECT 20 %3; | |||||
& | Bitwise AND | SELECT 91 & 15; | 91 | Available | the result is different from PostgreSQL |
# | Bitwise XOR | SELECT 17 # 5; | 17 | Available | the result is different from PostgreSQL |
3. Behaviors Difference
a) Output Header
Missing function name in output header, PostgreSQL shows the function name, like in this example:
SELECT COS(0),LN(1);
cos | ln
-----+-----
1 | 0
Oxla does not show the function name, like in this example:
SELECT COS(0),LN(1);
f | f_1
---+-----
1 | 0
b) ABS Output
Differences are also found in the ABS function, where there are differences in decimal results.
For example:
The example below will return the absolute value of -1.0
SELECT ABS(-1.0);
It returns 1 in Oxla, while in PostgreSQL, it produces 1.0
4. Errors Difference
Functions | Input | Output - Oxla | Output - PostgreSQL |
---|---|---|---|
LN | LN(0) | Infinity | ERROR: cannot take the logarithm of zero |
LN(0.0) | Infinity | ERROR: cannot take the logarithm of zero | |
SQRT | SQRT(-1) | NaN | ERROR: cannot take the square root of a negative number |
RANDOM | SELECT floor(random()*(10-1+1))+1; | ERROR: syntax error, unexpected INTVAL | working as expected |
SIN | SELECT sin(pi()/2); | unknown function pi | working as expected |
/ | 1/0 | error division(s) by zero | error division(s) by zero |
1/0.0 | Infinity | error division(s) by zero | |
0/0.0 | NaN | error division(s) by zero |