File: //opt/alt/python35/lib64/python3.5/site-packages/playhouse/__pycache__/shortcuts.cpython-35.pyc
R6�W# �
@ s� d d l Z d d l Td d l m Z e j d d k rU d d l m Z d d � Z d d d � Z d
d � Z d d
� Z d d d d d d d d d d � Z
d d d � Z Gd d � d e � Z
d S)� N)�*)�Node� )�Callablec C s
t | t � S)N)�
isinstancer )�c� r �
/shortcuts.py�<lambda> s r
c C s� t d � g } | d k } | r. | j | � x9 | D]1 \ } } | j t d � | t d � | f � q5 W| d k r� | j t d � | f � | j t d � � t | � S)a&
CASE statement builder.
Example CASE statements:
SELECT foo,
CASE
WHEN foo = 1 THEN "one"
WHEN foo = 2 THEN "two"
ELSE "?"
END -- will be in column named "case" in postgres --
FROM bar;
-- equivalent to above --
SELECT foo,
CASE foo
WHEN 1 THEN "one"
WHEN 2 THEN "two"
ELSE "?"
END
Corresponding peewee:
# No predicate, use expressions.
Bar.select(Bar.foo, case(None, (
(Bar.foo == 1, "one"),
(Bar.foo == 2, "two")), "?"))
# Predicate, will test for equality.
Bar.select(Bar.foo, case(Bar.foo, (
(1, "one"),
(2, "two")), "?"))
ZCASENZWHENZTHEN�ELSEZEND)�SQL�append�extend�Clause)� predicateZexpression_tuples�defaultZclausesZsimple_case�expr�valuer r r �case s "
)r c C s t j t | t d | � � � S)NzAS %s)�fnZCASTr r )ZnodeZas_typer r r �cast<