Operator precedence is wrong

Issue #620 resolved
Former user created an issue

Operator precedence list in sql.py doesn't match the precedences used in databases.

Example:

>>> print (literal(1)  == literal(2)) == None
:literal = :literal_1 IS NULL

This will generate errors on postgresql because IS has higher precedence than comparison.

Comments (3)

  1. Former user Account Deleted

    The current patch has a problem with boolean operators used as the comparable for BETWEEN. e.g. (literal(1) == literal(2)).between(False,True) outputs '':literal = :literal_1 BETWEEN :literal_2 AND :literal_3'', correct would be (:literal = :literal_1) BETWEEN :literal_2 AND :literal_3.

  2. Log in to comment