
;t/Uc           @   sA  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d d l
 m Z m Z m Z m Z m Z d d l m Z d d l m Z m Z d d l m Z d d l m Z d d l m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ d d	 l% m& Z& m' Z' m( Z( d d
 l) m* Z* m+ Z+ m, Z, m- Z- m. Z. d d l/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 d Z5 e	 j6 e	 j7 e	 j8 e	 j9 e	 j: f Z; e< d d d d d d d d d d d d d f  Z= d e> f d     YZ? d e f d     YZ@ d e@ f d     YZA d S(    iNi   (   t   pjoint   existst   picklet   hashlib_md5t   iterkeys(   t   IDENTITY(   t   portalockert   json(   t   gae(   t   ConnectionPool(   t
   Expressiont   Fieldt   Queryt   Tablet   Rowt   FieldVirtualt   FieldMethodt   LazyReferenceGettert   LazySett   VirtualCommandt   Rows(   t   REGEX_NO_GREEDY_ENTITY_NAMEt
   REGEX_TYPEt   REGEX_SELECT_AS_PARSER(   t   xorifyt   use_common_filterst
   bar_encodet   bar_decode_integert   bar_decode_string(   t   SQLCustomTypet   SQLALLt	   Referencet   RecordUpdatert   RecordDeleterid   t   orderbyt   groupbyt   limitbyt   requiredt   cachet   leftt   distinctt   havingt   joint
   for_updatet	   processort	   cacheablet   orderby_on_limitbyt   AdapterMetac           B   s   e  Z d  Z d   Z RS(   s   Metaclass to support manipulation of adapter classes.

    At the moment is used to intercept `entity_quoting` argument passed to DAL.
    c         O   s   | j  d i   j  d |  j  } | |  _ | j  d t  } d | k rR | d =n  t t |   j | |   } | s d } | _ d } n | j } t } t j	 d | | d | | d  | _
 | S(	   Nt   adapter_argst   uploads_in_blobt   entity_quotings   %ss   (\w+)t   ^s   \.t   $(   t   getR1   t   Falset   superR/   t   __call__t   QUOTE_TEMPLATER   t   ret   compilet   REGEX_TABLE_DOT_FIELD(   t   clst   argst   kwargsR1   R2   t   objt   quott	   regex_ent(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR8   ,   s    	
		$(   t   __name__t
   __module__t   __doc__R8   (    (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR/   &   s   t   BaseAdapterc        	   B   s  e  Z e Z g  Z e Z e Z f  Z e Z	 e
 Z e
 Z e
 Z e Z e Z e Z d    Z d Z d Z d Z d Z d Z d Z d Z i d d	 6d
 d 6d d 6d d 6d
 d 6d d 6d
 d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d  d! 6d" d# 6d d$ 6d d% 6d d& 6d  d' 6d" d( 6d) d* 6Z d+   Z d,   Z d-   Z d.   Z d/   Z d0   Z  d1 e d2  Z! d3   Z" d4   Z# e d5  Z$ e d6  Z% d7 e d8 e& i  i  e e d9  Z' d:   Z( d;   Z) d<   Z* e e
 e d=  Z+ e
 d>  Z, d?   Z- d@   Z. dA   Z/ e dB  Z0 dC   Z1 dD   Z2 dE   Z3 dF   Z4 dG   Z5 dH   Z6 dI   Z7 dJ   Z8 dK   Z9 dL   Z: dM   Z; dN   Z< dO   Z= dP   Z> dQ   Z? dR   Z@ dS dT  ZA dU   ZB dV   ZC dW   ZD dX   ZE dY   ZF dZ   ZG d[   ZH d\   ZI d]   ZJ d^   ZK d_   ZL d`   ZM da   ZN e db  ZO e dc  ZP e dd  ZQ e de  ZR e df  ZS e dg  ZT e dh  ZU di   ZV dj   ZW dk   ZX dl   ZY dm   ZZ dn   Z[ do   Z\ dp   Z] dq   Z^ dr   Z_ ds   Z` dt   Za du   Zb e e
 dv  Zc dw   Zd dx   Ze dS dy  Zf d dz  Zg d{   Zh d|   Zi d}   Zj d~   Zk d   Zl d   Zm d   Zn d   Zo d   Zp d   Zq d   Zr e d  Zs e d  Zt d   Zu d   Zv d   Zw d   Zx d   Zy d   Zz d   Z{ d   Z| d   Z} d   Z~ d   Z d   Z d   Z d   Z d   Z d   Z d7 e d  Z e d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e e
 d  Z d   Z d   Z e d  Z d   Z RS(   c          O   s   d  S(   N(   t   None(   R>   R?   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   <lambda>Q   s    t   1t   0t   Tt   Ft    s   "%s"s	   SELECT 1;s   CHAR(1)t   booleans   CHAR(%(length)s)t   stringt   TEXTt   textR   t   passwordt   BLOBt   blobt   uploadt   INTEGERt   integert   bigintt   DOUBLEt   floatt   doublet   decimalt   DATEt   datet   TIMEt   timet	   TIMESTAMPt   datetimes!   INTEGER PRIMARY KEY AUTOINCREMENTt   idsA   INTEGER REFERENCES %(foreign_key)s ON DELETE %(on_delete_action)st	   references   list:integers   list:strings   list:references   big-ids   big-references}   , CONSTRAINT  "FK_%(constraint_name)s" FOREIGN KEY (%(field_name)s) REFERENCES %(foreign_key)s ON DELETE %(on_delete_action)ss   reference FKc         C   s)   t  |  j d  s d  St | |  j j  S(   Nt   OperationalError(   t   hasattrt   driverRG   t
   isinstanceRe   (   t   selft	   exception(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   isOperationalErrorv   s    c         C   s)   t  |  j d  s d  St | |  j j  S(   Nt   ProgrammingError(   Rf   Rg   RG   Rh   Rl   (   Ri   Rj   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   isProgrammingError{   s    c         C   s;   t  | d d   } | r* | | d d  k S| j d  k Sd  S(   Nt   _primarykeyi    (   t   getattrRG   t   _id(   Ri   t   tablet   pkeys(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   id_query   s    c         C   s   d | j  d d  S(   Ns   '%s't   's   ''(   t   replace(   Ri   R@   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   adapt   s    c         C   s2   t  | t t f  r t |  S|  j t |   S(   N(   Rh   t   intRZ   t   strRv   (   Ri   R@   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   smart_adapt   s    
c         C   s
   t  |  S(   N(   R   (   Ri   t   filename(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   file_exists   s    t   rbc         C   s.   | r t  j | |  } n t | |  } | S(   N(   R   t
   LockedFilet   open(   Ri   Rz   t   modet   lockt   fileobj(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   file_open   s    c         C   s   | r | j    n  d  S(   N(   t   close(   Ri   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt
   file_close   s    c         C   s   t  j |  d  S(   N(   t   ost   unlink(   Ri   Rz   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   file_delete   s    c         C   sK  | |  _  t |  d d   d  k	 r% d  Sg  |  j D]$ } | t |  j j  k r/ | ^ q/ } | r | j d d  d j d  } t |  d k r | d n d  } n d  } | p | j	 d  } | r| | k r | |  _
 |  j j | |  _ qGt d |   nE | r.| d |  _
 |  j j |  j
 |  _ n t d t |  j    d  S(   NRg   s   ://i   i    t   :s   driver %s not availables   no driver available %s(   R0   Ro   RG   t   driversR   t   dbt   _drivers_availablet   splitt   lenR5   t   driver_nameRg   t   RuntimeErrorRx   (   Ri   R0   t   uriRg   t   drivers_availablet   itemst   request_driver(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   find_driver   s&    	$%	c         C   s   d } |  j j d d  } t |  } | rB t j j |  } n  | r | j r | r |  j r | rr | | _	 n t
 |  j |  | _	 |  j | j	 d  } | j |  |  j |  n  d S(   ss    Logs migrations

        It will not log changes if logfile is not specified. Defaults
        to sql.log
        t   logfiles   sql.logt   aN(   RG   R0   R5   t   boolR   t   patht   isabst   _dbtt   foldert   _loggernameR    R   t   writeR   (   Ri   t   messageRq   R   t   logfilenamet   writelogR   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   log   s    i    s   UTF-8c         C   sq   | |  _  d |  _ | |  _ | |  _ | |  _ | |  _ |
 |  _ d t f d     Y} |   |  _ |   |  _	 d  S(   NRG   t   Dummyc           B   s   e  Z d  Z d   Z RS(   i   c         S   s   d   S(   Nc          _   s   g  S(   N(    (   R   t   b(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRH      s    (    (   Ri   t   value(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   __getattr__   s    (   RC   RD   t	   lastrowidR   (    (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR      s   (
   R   t   dbengineR   t	   pool_sizeR   t   db_codect   _after_connectiont   objectt
   connectiont   cursor(   Ri   R   R   R   R   R   t   credential_decodert   driver_argsR0   t
   do_connectt   after_connectionR   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   __init__   s    							c         C   s   |  j  d | S(   Ns   %s_sequence(   R9   (   Ri   t	   tablename(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   sequence_name   s    c         C   s   d | S(   Ns   %s_sequence(    (   Ri   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   trigger_name   s    c         C   s   | S(   N(    (   Ri   t   name(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   varquote   s    c   0      C   s3  | j  } g  } g  } i  } i  }	 i  }
 | j } d } |  j } x| D]} | d 7} | j } | j } t | t  r | j p | j } n| j d  rp| d j	   } | d k r | } n  |  j
 | |  } y& | | } | j } | j } | } Wn t t t f k
 r} |  j j j d |  y- | j d  \ } } | | } | | } Wqt k
 r} |  j j j d |  t d | | j f   qXn Xt | d d   r| | j k s| j r| | j d	  t d
 | j  } | j r5t | j  d k r5| |
 k r$i  |
 | <n  | |
 | | <qm| | d t d | d | j d | j d d | j d | j d | j  } q| | k r| | j j } n( | | k r| j j } n |  j d } | | k r| | j } n | | k r| | j p| } | | j } | | d	  t d |  j | d d | j d |  j | d d | | j f d | j  } n| j d  r| | d  } n| j d  rt t  | d d !j d   \ } } | | d  t d | d |  } n| j d   rOt! |  d!  st" d"   n  |  j# } | d  j d#  \ } } | | k r\t$ d$ | | f   n  | | } |  j% d% k r| d& k r|  j& t' k r| j(   } n  d' }  | j d  } t |  d( k r| \ }! } }  n+ t |  d' k r| \ }! } n
 | d }! d) | | } | t d* |! d+ | d, | d! | d- |   } | j) |  qn? | | k rtt$ d$ | | f   n | | t d
 | j  } | j d  r
| j d  r
| j* r| d. 7} n | |  j+   7} | j r| d/ 7} n  | j, r
| d0 | j, 7} q
n  t d
 | j d1 | j d2 | j* d3 | d4 t- |  d5 |  | | <| j* r| j. d  k	 r|  j/ | j. |  }" | j0 d6 |"  } n  t d5 |  |	 | <|  j% d% k o| j d7  sF | j) d8 | j | f  qF qF Wd9 }# |  j% d: k rEt! | d  s#| j) d; |  j | j j  n  |  j1 j2 d< d=  }$ d> |$ }# n  d? j3 |  } x |
 D] } |
 | }% g  | | j D] }& |  j |& ^ qy}' g  |' D] }( |  j |% |( j ^ q}) | d? | d@ t d | j d dA j3 |)  dB | j d dA j3 |'  d | j  } q[W| j }* t | d d   rudC | j | |  j4 dA j3 g  | j D] }& |  j |& ^ qL  |# f }+ n dD | j | |# f }+ |  j5 j dE  s|  j5 j dF  r	t6 j7   pt8 j9   d pdG }, |  j5 d	 |  j5 j: dH  !j; dG  j< |,  }- n	 |  j= }- | s	|+ S|  j5 j dI  s9	|  j5 j dJ  rE	d  | _> nF t | t-  ri	t? |- |  | _> n" t? |- dK | j  j@ | f  | _> | j> s	|  jA | j>  r
| j> r	|  jB dL tC jC jD   jE   |+ f |  n  | s.
|  jF |+ |  | j  jG   x+ | D]  }+ |  jH |+  | j  jG   q
Wn  | j> r/|  jI | j> dM  }. tJ jK | |.  |  jL |.  | r
|  jB dN |  q
|  jB dO |  q/n |  jI | j> dP  }. y tJ jM |.  }/ Wn1 tN k
 r
|  jL |.  t" dQ | j>   n X|  jL |.  | |/ k r/|  jO | | |/ |	 d  dR | n  |+ S(S   Ni    i   Rd   i
   t   .s	   Error: %ss,   Cannot resolve reference %s in %s definitionRn   i	   t   lengths   reference FKt   constraint_namet   foreign_keys    (t   )t
   table_namet
   field_namet   on_delete_actionRc   t
   index_namet   __idxs   %s (%s)s   list:referencei   R\   i   it   ,i   t	   precisiont   scalet   geot   srids!   Adapter does not support geometryt   (s$   Field: unknown field type: %s for %st   postgrest   geometryi   i   sn   SELECT AddGeometryColumn ('%%(schema)s', '%%(tablename)s', '%%(fieldname)s', %%(srid)s, '%s', %%(dimension)s);t   schemaR   t	   fieldnamet	   dimensions	    NOT NULLs    UNIQUEs    %st   uniquet   notnullt   sortablet   typet   sqls   NOT NULLt   geoms   %s %st   ;t   mysqls   PRIMARY KEY (%s)t   enginet   InnoDBs    ENGINE=%s CHARACTER SET utf8;s   ,
    s   reference TFKs   , t   foreign_tables#   CREATE TABLE %s(
    %s,
    %s) %ss   CREATE TABLE %s(
    %s
)%ss
   sqlite:///s   spatialite:///t   utf8t   /s   sqlite:memorys   spatialite:memorys   %s_%s.tables   timestamp: %s
%s
t   ws   faked!
s	   success!
t   rs   File %s appears corruptedt   fake_migrate(P   t   _dbt
   _tablenamet   typesR   R   Rh   R   t   nativet
   startswitht   stripR   Rp   t   KeyErrort
   ValueErrort   AttributeErrorR   t   loggert   debugR   t	   ExceptionRo   RG   Rn   R   t   dictR   R   t   sqlsafet   sqlsafe_namet   ondeleteR9   t   mapRw   Rf   R   R   t   SyntaxErrorR   t   ignore_field_caset   Truet   lowert   appendR   t
   ALLOW_NULLt   custom_qualifierRx   t   defaultt   NOT_NULLRu   R0   R5   R*   t   PRIMARY_KEYR   t   syst   getfilesystemencodingt   localet   getdefaultlocalet   rfindt   decodet   encodeR   R   R    t	   _uri_hashR{   R   Rb   t   todayt	   isoformatt   create_sequence_and_triggerst   committ   executeR   R   t   dumpR   t   loadt   EOFErrort   migrate_table(0   Ri   Rq   t   migrateR   t	   polymodelR   t   fieldst   postcreation_fieldst
   sql_fieldst   sql_fields_auxt   TFKR   R   R   t   fieldR   t
   field_typet   ftypet
   referencedR   t   rtablet   rfieldt
   rfieldnamet
   rtablenamet   et   id_fieldnamet   real_referencedR   R   R   t   geotypet   parmsR   R   t   not_nullt   otherR   t   rfieldst   pkRr   t   kt   fkeyst   table_rnamet   queryt   path_encodingt   dbpatht   tfilet   sql_fields_old(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   create_table   s   			
			
		

!!				%	


						!!
''				?					
c            s  | j  } | j j | j  | j }   f d   }	 t t |	 | j     } t t |	 | j     } t t |	 | j     } | j r | j j	 d | | f  n  | j
   }
 x* | D]" } | |
 k r |
 j |  q q W  j |  } t } t j |  } x|
 D]} d  } | | k r| | | | <  j d  k ro| | d j d  ro| | d g } n- d | j | | | d j d |  f g } t } n   j d! k r| | k r| | | | <n  t } n| | k r| | =| | d }   j d" k rj| j d  rj| d  j d  \ } } | j d  d } d t d | d | d |  g } nT   j d# k rd   j |   j | f g } n! d   j |   j | f g } t } n| | d | | d k rr| | j k ot | | j t  rr| | d j d  rr| | d j d  rr| | d j d  rr| | | | <| } | | d j d |  }   j d$ k rd } n d } | d } d   j |   j | | f d   j |   j |   j | f |   j |   j | f d   j |   j | | f d   j |   j |   j | f |   j |   j | f g } t } n3 | | d | | d k r| | | | <t } n  | r  j d t j j   j   |  d j |  | d <x | D] }   j | d |  | r:| j j  r'  j! | |  n    j d |  q  j" |  | j j  r| j#     j! | |    j d |  qqWq| r  j! | |  qqW| r| o| j j  r| j#     j! | |    j d |  n  d  S(%   Nc            s\   |  \ } } t  | t  s3 t d d d |  } n    j t k	 rL | | f S| j   | f S(   NR   t   unknownR   (   Rh   R   R   R   R   (   t   itemR!  t   v(   Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   fix  s     
s   migrating %s to %sR   R   R   R   s   ALTER TABLE %s ADD %s %s;s   , t   sqlitet
   spatialiteiR   R   i    sa   SELECT DropGeometryColumn ('%(schema)s',                               '%(table)s', '%(field)s');R   Rq   R  t   firebirds   ALTER TABLE %s DROP %s;s   ALTER TABLE %s DROP COLUMN %s;Rd   R[   Rc   t   __tmps   UPDATE %s SET %s=%s;s   timestamp: %s
s   
t   _lastsqls   faked!
s	   success!
(   s   postgres(   s   sqlites
   spatialite(   s   postgres(   s   firebird(   s   firebird($   R   t	   _migratedR   R   R   R   t	   iteritemst   _debugR   R   t   keyst
   concat_addR6   t   copyRG   R   R   R   Ru   R   R   R9   R  Rh   R   R   R   Rb   R   R  R*   t   _adaptert   commit_on_alter_tablet   save_dbtR  R  (   Ri   Rq   R  R(  R  R   R   R   R   R-  R6  t   keyt   new_addt   metadata_changet   sql_fields_currentR$  R  R  R  R   t   tt   ttt	   drop_exprt   key_tmpt	   sub_query(    (   Ri   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    				!		"!		
""!			

c         C   s6   |  j  | j d  } t j | |  |  j |  d  S(   NR   (   R   R   R   R  R   (   Ri   Rq   R?  R'  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR;  o  s    c         C   s   d |  j  |  S(   Ns	   LOWER(%s)(   t   expand(   Ri   t   first(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   LOWERt  s    c         C   s   d |  j  |  S(   Ns	   UPPER(%s)(   RE  (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   UPPERw  s    c         C   s   | s d n d |  j  |  S(   Ns	   COUNT(%s)s   COUNT(DISTINCT %s)(   RE  (   Ri   RF  R(   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   COUNTz  s    c         C   s   d | |  j  |  f S(   Ns   EXTRACT(%s FROM %s)(   RE  (   Ri   RF  t   what(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   EXTRACT~  s    c         C   s   |  j  | d  S(   Nt   epoch(   RK  (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   EPOCH  s    c         C   s   d |  j  |  S(   Ns
   LENGTH(%s)(   RE  (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   LENGTH  s    c         C   s   d | |  j  |  f S(   Ns   %s(%s)(   RE  (   Ri   RF  RJ  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   AGGREGATE  s    c         C   s   d S(   Nt   JOIN(    (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRP    s    c         C   s   d S(   Ns	   LEFT JOIN(    (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   LEFT_JOIN  s    c         C   s   d S(   Ns   Random()(    (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   RANDOM  s    c         C   s   d |  j  | |  S(   Ns   NOT NULL DEFAULT %s(   t	   represent(   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR     s    c         C   sC   |  j  |  g g  | D] } |  j  |  ^ q } d d j |  S(   Ns   COALESCE(%s)R   (   RE  R*   (   Ri   RF  t   secondR  t   expressions(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   COALESCE  s    2c         C   s   d |  j  |  S(   Ns   COALESCE(%s,0)(   RE  (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   COALESCE_ZERO  s    c         C   s   | S(   N(    (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   RAW  s    c         C   s   d S(   Nt    (    (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR     s    c         C   s"   d |  j  |  | d | d f S(   Ns   SUBSTR(%s,%s,%s)i    i   (   RE  (   Ri   R  t
   parameters(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   SUBSTRING  s    c         C   s   d | S(   Ns   PRIMARY KEY(%s)(    (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR     s    c         C   s   d | j  g S(   Ns   DROP TABLE %s;(   R   (   Ri   Rq   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _drop  s    c         C   si   | j  } | | j =| j | j j | j  =| j |  | j re |  j | j  |  j d |  n  d  S(   Ns	   success!
(   R   R   t   tablest   indext   _remove_references_toR   R   R   (   Ri   Rq   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _drop_cleanup  s    	
	RY  c         C   st   | j  } |  j | |  } x; | D]3 } | j rH |  j | d |  n  |  j |  q" W| j   |  j |  d  S(   Ns   
(   R   R\  R   R   R  R  R`  (   Ri   Rq   R   R   t   queriesR$  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   drop  s    		
c            si   | j  } | rX d j d   | D  } d j   f d   | D  } d | | | f S  j |  Sd  S(   NR   c         s   s   |  ] \ } } | j  Vq d  S(   N(   R   (   t   .0t   fR,  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pys	   <genexpr>  s    c         3   s*   |  ]  \ } }   j  | | j  Vq d  S(   N(   RE  R   (   Rc  Rd  R,  (   Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pys	   <genexpr>  s    s   INSERT INTO %s(%s) VALUES (%s);(   R   R*   t   _insert_empty(   Ri   Rq   R  R#  R6  t   values(    (   Ri   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _insert  s    	c         C   s   d | j  S(   Ns   INSERT INTO %s DEFAULT VALUES;(   R   (   Ri   Rq   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRe    s    c   	      C   s]  |  j  | |  } y |  j |  WnI t k
 rn t j   d } t | d  re | j | | |  S|  n Xt | d  r t g  | D]3 } | d j | j	 k r | d j | d f ^ q  } | i  k r | Sn  |  j
 |  } t | d  r!t | j	  d k r!i | | j	 d 6} n  t | t t f  s:| St |  } | d  | _ | _ | S(   Ni   t   _on_insert_errorRn   i    (   Rg  R  R   R   t   exc_infoRf   Rh  R   R   Rn   R   R   Rh   Rw   t   longR   RG   t   _tablet   _record(	   Ri   Rq   R  R$  R  R!  t   mydictRc   t   rid(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   insert  s(    
F$c         C   s#   g  | D] } |  j  | |  ^ q S(   N(   Ro  (   Ri   Rq   R   R+  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   bulk_insert  s    c         C   s   d |  j  |  S(   Ns   (NOT %s)(   RE  (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   NOT  s    c         C   s    d |  j  |  |  j  |  f S(   Ns   (%s AND %s)(   RE  (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   AND  s    c         C   s    d |  j  |  |  j  |  f S(   Ns
   (%s OR %s)(   RE  (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   OR  s    c            sm   t  | t  r* d  j    | d  f S| s4 d Sd j    f d   | D  } d  j    | f S(   Ns   (%s IN (%s))is   (1=0)R   c         3   s$   |  ] }  j  |   j  Vq d  S(   N(   RE  R   (   Rc  R+  (   RF  Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pys	   <genexpr>  s    (   Rh   Rx   RE  R*   (   Ri   RF  RT  R   (    (   RF  Ri   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   BELONGS  s    "c         C   s
   t   d S(   s   Regular expression operatorN(   t   NotImplementedError(   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   REGEXP  s    c         C   s#   d |  j  |  |  j  | d  f S(   s   Case sensitive like operators   (%s LIKE %s)RO   (   RE  (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   LIKE  s    c         C   s)   d |  j  |  |  j  | d  j   f S(   s   Case insensitive like operators   (LOWER(%s) LIKE %s)RO   (   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   ILIKE  s    c         C   s'   d |  j  |  |  j  | d d  f S(   Ns   (%s LIKE %s)t   %RO   (   RE  (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt
   STARTSWITH  s    c         C   s'   d |  j  |  |  j  d | d  f S(   Ns   (%s LIKE %s)Ry  RO   (   RE  (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   ENDSWITH  s    c         C   s7  | j  d k rw t | t  rT t d  |  j d t d  |  j | d   d   } qd t |  j d d  d } n | j  j d  rt | t  r t d  |  j d t d  |  j t d  |  j | d   d   d
   } qd t |  j d d  j d d	  d
 } n  | r!|  j	 p'|  j
 } | | |  S(   NRO   RQ   R   Ry  s   %%s   list:s   %|t   |s   ||s   |%(   s   strings   texts   json(   Ry  s   %%(   Ry  s   %%(   R|  s   ||(   R   Rh   R
   RG   t   CONCATt   REPLACERx   Ru   R   Rw  Rx  (   Ri   RF  RT  t   case_sensitivet   op(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   CONTAINS  s    $#$/c         C   sC   | d  k r d |  j |  Sd |  j |  |  j | | j  f S(   Ns   (%s IS NULL)s	   (%s = %s)(   RG   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   EQ"  s    c         C   sC   | d  k r d |  j |  Sd |  j |  |  j | | j  f S(   Ns   (%s IS NOT NULL)s
   (%s <> %s)(   RG   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   NE(  s    c         C   sE   | d  k r t d |   n  d |  j |  |  j | | j  f S(   Ns   Cannot compare %s < Nones	   (%s < %s)(   RG   R   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   LT.  s    c         C   sE   | d  k r t d |   n  d |  j |  |  j | | j  f S(   Ns   Cannot compare %s <= Nones
   (%s <= %s)(   RG   R   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   LE4  s    c         C   sE   | d  k r t d |   n  d |  j |  |  j | | j  f S(   Ns   Cannot compare %s > Nones	   (%s > %s)(   RG   R   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   GT:  s    c         C   sE   | d  k r t d |   n  d |  j |  |  j | | j  f S(   Ns   Cannot compare %s >= Nones
   (%s >= %s)(   RG   R   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   GE@  s    c         C   s   | d k p | j  d  S(   NRW   RN   R[   RX   R\   (   s   integers   booleans   doubles   bigint(   R   (   Ri   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   is_numerical_typeF  s    c         C   sA   | \ } } d |  j  | d  |  j  | d  |  j  | d  f S(   Ns   REPLACE(%s,%s,%s)RO   (   RE  (   Ri   RF  t   .2RT  t   third(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR~  J  s    	c            s!   d d j    f d   | D  S(   Ns   (%s)s    || c         3   s!   |  ] }   j  | d   Vq d S(   RO   N(   RE  (   Rc  t   x(   Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pys	   <genexpr>P  s    (   R*   (   Ri   R   (    (   Ri   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR}  O  s    c         C   s^   |  j  | j  s$ t | j t  rJ d |  j |  |  j | | j  f S|  j | |  Sd  S(   Ns	   (%s + %s)(   R  R   Rh   R   RE  R}  (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   ADDR  s    $c         C   s&   d |  j  |  |  j  | | j  f S(   Ns	   (%s - %s)(   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   SUBY  s    c         C   s&   d |  j  |  |  j  | | j  f S(   Ns	   (%s * %s)(   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   MUL]  s    c         C   s&   d |  j  |  |  j  | | j  f S(   Ns	   (%s / %s)(   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   DIVa  s    c         C   s&   d |  j  |  |  j  | | j  f S(   Ns
   (%s %% %s)(   RE  R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   MODe  s    c         C   s   d |  j  |  | f S(   Ns   %s AS %s(   RE  (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   ASi  s    c         C   sV   |  j  |  } t |  r6 |  j | | j g  } n  d |  j |  |  j |  f S(   Ns   %s ON %s(   t   table_aliasR   t   common_filterR   RE  (   Ri   RF  RT  R#  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   ONl  s    c         C   s   d |  j  |  S(   Ns   %s DESC(   RE  (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   INVERTr  s    c         C   s    d |  j  |  |  j  |  f S(   Ns   %s, %s(   RE  (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   COMMAu  s    c         C   s   d | | f S(   Ns   CAST(%s AS %s)(    (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   CASTx  s    c      
      s&  t  | t  r | j } | sv | j r7  j | j pM | j pM  j | j } d | | j pl  j | j f } n$ d  j | j  j | j f }   d k r | j d k r  j	 |  j
 d  } n  | St  | t t f  r| j } | j } | j }	 | j pi  }
 | d  k	 r5|	 | | |
  } n_ | d  k	 rS|	 | |
  } nA t  |	 t  r|	 j d  r~|	 d  }	 n  d |	 } n	 |	   } | S  rt  j |     St  | t t f  rd	 j    f d
   | D  St  | t  r| r j j j S j j j St |  Sd  S(   Ns   %s.%sRO   RQ   R   RR   R   is   (%s)R   c         3   s!   |  ] }  j  |    Vq d  S(   N(   RS  (   Rc  R+  (   R  Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pys	   <genexpr>  s   (   s   strings   texts   jsons   password(   Rh   R   Rq   t   _otR9   R   t   _rnameR   R   R  R   R
   R   RF  RT  R  t   optional_argsRG   Rx   t   endswithRS  t   listt   tupleR*   R   R   R9  t   TRUE_expt	   FALSE_exp(   Ri   t
   expressionR  t   colnamest   etR#  t   outRF  RT  R  R  (    (   R  Ri   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRE  {  sB    	2&$					 c         C   s&   t  | t  s |  j | } n  | j S(   N(   Rh   R   R   t   sqlsafe_alias(   Ri   t   tbl(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s   t  j  |  } | j p | j | d <t |  | d <| | d <xO | j D]D } t  j  | |  | | <| | | _ | | | _ | | | _ qI W| | j | <| S(   sY   
        Given a table object, makes a new table object
        with alias name.
        R  t   ALLR   (	   R8  R  R   R   R  R   R   Rq   R   (   Ri   Rq   t   aliasR  R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    
c         C   s   d | j  | p d f g S(   Ns   TRUNCATE TABLE %s %s;RY  (   R   (   Ri   Rq   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   _truncate  s    c         C   sf   z^ | j  j j | |  } x/ | D]' } |  j | d |  |  j |  q" W|  j d |  Wd  Xd  S(   Ns   
s	   success!
(   R   R9  R  R   R  (   Ri   Rq   R   Ra  R$  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   truncate  s    c         C   s   | r@ t  |  r* |  j | | g  } n  d |  j |  } n d } d j g  | D]. \ } } d | j |  j | | j  f ^ qS  } |  j | j } d | | | f S(   Ns    WHERE RY  R   s   %s=%ss   UPDATE %s SET %s%s;(   R   R  RE  R*   R   R   R   R   (   Ri   R   R$  R  t   sql_wR  R   t   sql_v(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _update  s    	;c         C   s   |  j  | | |  } y |  j |  WnY t k
 r t j   d } |  j | } t | d  rx | j | | | |  S|  n Xy |  j j	 SWn d  SXd  S(   Ni   t   _on_update_error(   R  R  R   R   Ri  R   Rf   R  R   t   rowcountRG   (   Ri   R   R$  R  R   R  Rq   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   update  s    
c         C   sd   | r@ t  |  r* |  j | | g  } n  d |  j |  } n d } |  j | j } d | | f S(   Ns    WHERE RY  s   DELETE FROM %s%s;(   R   R  RE  R   R   (   Ri   R   R$  R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _delete  s    c         C   sC   |  j  | |  } |  j |  y |  j j } Wn d  } n X| S(   N(   R  R  R   R  RG   (   Ri   R   R$  R   t   counter(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   delete  s    
c         C   sZ   |  j  |  } t |  d k r) | d St |  d k  rJ t d   n t d   d  S(   Ni   i    s   No table selecteds   Too many tables selected(   R]  R   R   (   Ri   R$  t
   tablenames(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   get_table  s    c         C   s   |  j  } g  } | j } x | D] } t | t  rD | | j 7} q t | t  r |  j j |  } | r | j   \ } }	 | | | |	  q | t	 | | d    q | |  q W| s x0 | D]% }
 x | |
 D] } | |  q Wq Wn  | S(   Nc         S   s   |  S(   N(    (   R+  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRH     s    (
   R   R   Rh   R   Rk  Rx   R<   t   matcht   groupsR
   (   Ri   R  R  R   t
   new_fieldsR   R+  t   mR   R   Rq   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt
   expand_all  s$    		c   1         s    j  } x. t | j    t D] } t d |   q  W| j } | |  } | } xA | D]9 }	 x0 | |	  D]" }
 |
 | k ro | j |
  qo qo Wq\ Wt |  d k  r t d   n    f d   } t | |    _	   f d   } d j
 t | |   } d } d } | d t  } | d	 t  } | d
 t  } | d t  } | d t  } | d t  } | d t  } | d t  } | d t  }   j t k r| t k rt d   n  | t k r| d 7} n | r| d | 7} n  | r1  j   } t | t t f  s"| g } n  g  | D] } t | t  s)| j ^ q)} g  | D] } t | t  rT| ^ qT} i  } g  | D]$ } | j t j | |    ^ qg  | D] } | j j ^ q} g  | D]! } | | k r| j |  ^ q| | | j   } g  | D] } | | k r| ^ q}  n  | r| d }!   j   }" t |! t t f  sn|! g }! n  g  |! D] } t | t  su| j ^ qu}# g  |! D] } t | t  r| ^ q}$ i  }% g  |$ D]$ } |% j t j | |    ^ qg  |$ D] } | j j ^ q}& g  |& D]! } | |% k r|% j |  ^ qg  | D] } | |& k rH| ^ qH} |# |& |% j   }' g  | D] } | |' k r| ^ q}( n | }( t |  r  j | |  } n  | rd   j |  n d }) d }* | rX| rX|* j
 g  |  | j   D] }   j |  ^ q }+ x| D] } |+ d | | f 7}+ q7Wn| r| r|* j
 g  |( |% j   D] }   j |  ^ q| }+ |# r|+ d |" d j
 g  |# D] } | ^ q f 7}+ n  x4|$ D] } |+ d |" | f 7}+ qWn| r| rt |' | |  }, t |& |  }- |, j |-  }. |* j
 g  |. D] }   j |  ^ qG }+ x" | D] } |+ d | | f 7}+ qlW|# r|+ d |" d j
 g  |# D] } | ^ q f 7}+ n  xD |$ D] } |+ d |" | f 7}+ qWn d j
   f d   | D  }+ | rit | t t f  r4t |  } n  | d   j |  7} | ri| d | d 7} qin  | rt | t t f  rt |  } n  t  |  d k r| d   j!   7} q| d   j |  7} n  | ry| ry| ry| ry| ry| d d j
 g  | D]b } t"   j# | d  r5  j# | j$ p;d g D], }/   j# | j% d   j# | |/ j& ^ q<q	 7} n    j' | | |+ |) | |  }0 | r  j t k r|0 j( d   d! }0 n  |0 S("   Ns   invalid select attribute: %si   s   Set: no tables selectedc            s     j  |  d t S(   NR  (   RE  R   (   R  (   Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   colexpand#  s    c            sO   t  |  j t  rB |  j j d  rB t  |  t  rB |  j   }  n    j |   S(   NR   (   Rh   R   Rx   R   R   t	   st_astextRE  (   R  (   Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   geoexpand&  s    3s   , RY  R'   R*   R(   R#   R"   R)   R$   R.   R+   s$   invalid select attribute: for_updatet   DISTINCTs   DISTINCT ON (%s)s    WHERE s    CROSS JOIN s    %s %sR   c         3   s   |  ] }   j  |  Vq d  S(   N(   R  (   Rc  R@  (   Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pys	   <genexpr>  s    s    GROUP BY %ss
    HAVING %ss   <random>s    ORDER BY %sRn   Rp   R   R   s    FOR UPDATE;()   R]  t   setR6  t   SELECT_ARGSR   R5   R   R   R   t	   _colnamesR*   R6   R   t   can_select_for_updateRP  Rh   R  R  R
   R   R  R   t   fromkeysRF  t   popRQ  R   R  RE  R  t
   differenceR   Rx   RR  Rf   R   Rn   R   R   t   select_limitbyt   rstrip(1   Ri   R$  R  t
   attributesR]  R<  t   args_getR  t   tablenames_for_common_filtersR  R   R  R  t   sql_ft   sql_ot   sql_sR'   t
   inner_joinR(   R#   R"   R)   R$   R.   R+   t   icommandR@  t   ijointt   ijoinont   itables_to_merget   ijoinontt   iimportant_tablenamest	   iexcludedR*   t   commandt   jointt   joinont   tables_to_merget   joinontt   important_tablenamest   excludedR  RP  t   sql_tt   all_tables_in_queryt   tables_in_joinont   tables_not_in_joinonR  R   (    (   Ri   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _select  s    		(,
(,,	,)	*
+	* &Dc   	      C   sD   | r- | \ } } | d | | | f 7} n  d | | | | | f S(   Ns    LIMIT %i OFFSET %is   SELECT %s %s FROM %s%s%s;(    (	   Ri   R  R  R  R  R  R$   t   lmint   lmax(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s
    c         C   s   |  j  j   S(   N(   R   t   fetchall(   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt	   _fetchall  s    c            s  | j  } | d d   } | s:   j     j   } nW | \ } }   j d  d }	 t |	  j   }	    f d   }
 | |	 |
 |  } t | t  r t	 |  } n  | d d   p d	 }   j
 | | d d   } | d   j  } | d t  } | | |   j d | S(
   NR&   R   s   /rowsc              s     j      j   S(   N(   R  R  (    (   Ri   R   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _select_aux2  s    R$   i    R,   R-   (   i    (   R5   RG   R  R  R   R   t	   hexdigestRh   R  R  t   rowslicet   parseR6   R  (   Ri   R   R  R  R  R&   t   rowst   cache_modelt   time_expireR<  R  R$   R,   R-   (    (   Ri   R   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _select_aux  s"    	c   
      C   s   |  j  | | |  } | j d d  } | r | j d t  r | d =| \ } } |  j d | } t |  j   } | | | f }	 | | |  |	 d  |  S|  j | | |  Sd S(   s?   
        Always returns a Rows object, possibly empty.
        R&   R-   R   c         S   s   |  j  |   S(   N(   R  (   Ri   R>   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRH     s    N(   R  R5   RG   R6   R   R   R  R  (
   Ri   R$  R  R  R   R&   R  R  R<  R>   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   select  s    c            s     j  |  } | rL t |  r6   j | |  } n  d   j |  } n d } d j   f d   | D  } | r t | t t f  r t |  } n    j |  } d | | | f Sd | | f S(   Ns    WHERE RY  R   c         3   s   |  ] }   j  |  Vq d  S(   N(   R  (   Rc  R@  (   Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pys	   <genexpr>  s    s$   SELECT count(DISTINCT %s) FROM %s%s;s   SELECT count(*) FROM %s%s;(	   R]  R   R  RE  R*   Rh   R  R  R   (   Ri   R$  R(   R  R  R  t   sql_d(    (   Ri   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   _count  s    c         C   s*   |  j  |  j | |   |  j j   d S(   Ni    (   R  R  R   t   fetchone(   Ri   R$  R(   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   count  s    c         G   s   t    } x | D] } t | t  r8 | j | j  q t | t t f  r | j d  k	 rz | j	 |  j
 | j   } n  | j d  k	 r | j	 |  j
 | j   } q q q Wt |  S(   N(   R  Rh   R   t   addR   R
   R   RF  RG   t   unionR]  RT  R  (   Ri   Ra  R]  R$  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR]    s    	%c         C   s   |  j  r |  j  j   Sd  S(   N(   R   R  (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    	c         C   s   |  j  r |  j  j   Sd  S(   N(   R   t   rollback(   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    	c         C   s)   |  j  r% |  j  j   } d  |  _  | Sd  S(   N(   R   R   RG   (   Ri   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   close_connection  s    		c         C   s   d  S(   N(    (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   distributed_transaction_begin  s    c         C   s   |  j  r |  j  j   n  d  S(   N(   R   t   prepare(   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    	 c         C   s   |  j  r |  j  j   n  d  S(   N(   R   R  (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   commit_prepared  s    	 c         C   s   |  j  r |  j  j   n  d  S(   N(   R   R  (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   rollback_prepared  s    	 c         C   s   d S(   Ns   , ADD (    (   Ri   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR7    s    c         C   s   d | | f S(   Ns   %s_%s__constraint(    (   Ri   Rq   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR     s    c         K   s   |  j  |  d  S(   N(   R  (   Ri   R$  Rq   R>   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         O   s   |  j  s t | d   n  |  j  s) d  S| d } t |  d  rT |  j |  } n  |  j j rz |  j j j d |  n  | |  j _	 t
 j
   } |  j j | | d |  } |  j j j | t
 j
   | f  |  j j t 4| S(   Ni    t   filter_sql_commands   SQL: %si   (   R   R   RG   Rf   R  R   R5  R   R   R2  R`   R   R  t   _timingsR   t   TIMINGSSIZE(   Ri   R   R   R  t   t0t   ret(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   log_execute  s    	 	 
#c         O   s   |  j  | |   S(   N(   R  (   Ri   R   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  -  s    c   
      C   s/  | j  } t | t  r$ |   } n  t | t  rn | j |  } | rd | j d" k rd |  j |  S| pm d St | t t f  r t	 |  S| d  r| s g  } n! t | t
 t f  s | g } n  | d  r t t	 |  } qt t g  | D] } | d k r | ^ q  } n  t | t
 t f  rI| d k rIt |  } n  | d  k rYd S| d k ry| d  d# k ryd S|  j | |  } | d  k	 r| S| d k r| rt	 |  d  j   d k r|  j |  j  S|  j |  j  Sn  | d k s| d k rt	 t |   S| d  r*t	 |  S| d  r| d j   } | |  j j k rht	 t |   S| j d  } | d d k ry0 |  j | d | d j }	 |  j | |	  SWqt t f k
 rt |  SXn# t | t t f  rt	 | d  St	 t |   S| d k r*t t  |   St | t!  rN| j" |  j#  } n  | d k rrt$ j% t	 |   } nY| d k rt | t& j' t& j& f  r| j(   d  } qt	 |  } n| d k r1t | t& j&  r| j( |  j)  d  } qt | t& j'  r"| j(   d  |  j) d } qt	 |  } n | d k rqt | t& j*  rb| j(   d  } qt	 |  } nZ | d k rd  |  j+ k r|  j j, d  r|  j j- d |  } qt. j/ |  } qn  t | t0  st0 |  } n  y | j1 |  j#  Wn" | j1 d!  j" |  j#  } n X|  j |  S($   NRO   RQ   R   t   NULLs   list:s   list:stringRY  i   t   stt   tet   jst   pat   upRN   i   t   0FRc   RW   R\   Rd   i	   R   i    R[   RT   R^   i
   Rb   i   s   00:00:00R`   t   dumpst   latin1(   s   strings   texts   json(   s   sts   teR  s   paR  (2   R   Rh   t   CALLABLETYPESR   t   encoderR   Rv   R
   R   Rx   R  R  R   Rw   R   RG   t   represent_exceptionst   upperRy   t   TRUEt   FALSERj  R   R   R]  t	   partitionRS  R   R   t   reprR   R   RZ   t   unicodeR   R   t   base64t	   b64encodeRb   R^   R  t   T_SEPR`   t   driver_auto_jsont   has_serializert	   serializeR   R  t   bytesR   (
   Ri   R@   t	   fieldtypet   field_is_typeR   t   oR   R  t   pR  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRS  0  s    	

	1""
c         C   s   d  S(   N(   RG   (   Ri   R@   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s   d  S(   N(   RG   (   Ri   Rq   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR     s    c         C   s   | S(   sf   
        By default this function does nothing;
        overload when db does not do slicing.
        (    (   Ri   R  t   minimumt   maximum(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s  | d k rK t  | t  rK y | j |  j j  } WqK t k
 rG qK Xn  t  | t  rl | j d  } n  t  | t  r | j	 |  } n  t  | t  s | d  k r | S| d
 k r | S| j d  r | S| d k r | r | St j |  j d	  } |  j | | |  Sd  S(   NRT   s   utf-8RO   RQ   RR   RU   R   R   i    (   s   strings   texts   passwords   uploads   dict(   Rh   Rx   R   R   t	   _db_codecR   R  R   R   t   decoderRG   R   R   R  t   groupt   parsemap(   Ri   R   R  t   blob_decodeR<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_value  s&    c         C   sI   | d j    } d | k rE t |  } |  j | d  | _ | _ n  | S(   Ni
   R   (   R   R   R   RG   Rk  Rl  (   Ri   R   R  t   referee(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_reference  s
    c         C   s)   | |  j  k p( t |  d  j   d k S(   Ni   R@  (   R  Rx   R   (   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_boolean  s    c         C   s   t  | t j  r | j   St  | t j t j f  s t t t |  d  j   j d   \ } } } t j | | |  } n  | S(   Ni
   t   -(   Rh   Rb   R^   R   Rw   Rx   R   R   (   Ri   R   R  t   yR  t   d(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt
   parse_date  s    
1c         C   s   t  | t j  s t t t |  d  j   j d  d   } t |  d k rb | \ } } } n | d g \ } } } t j | | |  } n  | S(   Ni   R   i   i    (	   Rh   Rb   R`   R   Rw   Rx   R   R   R   (   Ri   R   R  t
   time_itemst   ht   mit   s(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt
   parse_time  s    ,c      	   C   s  t  | t j  st |  } | d  | d d !| d } } } d | k r | j d  \ } } | j d  \ } }	 t j d d t |  d t |	   }
 nj d	 | k r| j d	  \ } } | j d  \ } }	 t j d d t |  d t |	   }
 n d  }
 t t | j d	   \ } }	 } | rH| j d  d
  pKd } x# t |  d
 k  rs| j	 d  qQWt t |  } | \ } } } t j | |	 | | | |  } |
 r| |
 } qn  | S(   Ni
   i   i   t   +R   t   secondsi  i<   R(  i   i    (   i    i    i    (
   Rh   Rb   Rx   R   t	   timedeltaRw   RG   R   R   R   (   Ri   R   R  t	   date_partt	   time_partt   timezonet   mst   tzR-  R  t   dtR)  R*  t
   time_partsR,  R.  R/  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_datetime  s,    #-.! c         C   s   t  j t |   S(   N(   R  t	   b64decodeRx   (   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt
   parse_blob  s    c         C   sx   t  | d d !j d  d  } |  j d k rJ d t |  d | } n  t | t j  st t j t |   } n  | S(	   Ni   iR   R.  R/  s   %.Rd  (   s   sqlites
   spatialite(   Rw   R   R   Rx   Rh   R\   t   Decimal(   Ri   R   R  t   decimals(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_decimal  s     c         C   s"   t  |  t  s t |  } n  | S(   N(   Rh   t   NoSQLAdapterR   (   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_list_integers  s    c         C   sE   t  |  t  s t |  } n  g  | D] } |  j | | d  ^ q% S(   Ni   (   Rh   RA  R   R&  (   Ri   R   R  R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_list_references  s    c         C   s"   t  |  t  s t |  } n  | S(   N(   Rh   RA  R   (   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_list_strings  s    c         C   s
   t  |  S(   N(   Rj  (   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_id  s    c         C   s
   t  |  S(   N(   Rj  (   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_integer   s    c         C   s
   t  |  S(   N(   RZ   (   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   parse_double  s    c         C   s   d |  j  k r t | t  s- t d   n  t | t  rN | j d  } n  |  j j d  rx |  j j d |  } q t	 j
 |  } n  | S(   Nt   loadss   json data not a strings   utf-8t
   loads_json(   R  Rh   t
   basestringR   R  R   R   R  R  R   RH  (   Ri   R   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt
   parse_json  s    c         C   s   i |  j  d 6|  j d 6|  j d 6|  j d 6|  j d 6|  j d 6|  j d 6|  j d 6|  j d	 6|  j d
 6|  j d 6|  j	 d 6|  j
 d 6|  j d 6|  j d 6|  j d 6|  _ d  S(   NRc   RW   RX   RZ   R[   Rd   RN   R^   R`   Rb   RT   R\   R   s   list:integers   list:references   list:string(   RE  RF  RG  R&  R'  R+  R0  R;  R=  R@  RK  RB  RC  RD  R"  (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   build_parsemap  s"    














c   $      C   s  |  j  } g  } g  } g  }	 x | D]y }
 |  j j |
  } | sP |	 j d   q" | j   \ } } | | } | | } | j } |	 j | | | | | f  q" Wxt |  D]\ } } t   } xt |  D]{\ } }
 | | } |	 | } | r| \ } } } } } | j	 | d   } | d  k rWt   } | | <| | k rW| j |  qWn  |  j
 | | |  } | j r| j |  } n  | | | <| d k r| d k rd | j k r| | d <n  | d k rI| rI|  j d k r| j j   } | | | <| | _ n | } t | | |  | _ t | |  | _ | j j r[t | |  | d <n  xg | j D]Y } | j o| j t d | j d | j  } | re| | k ret | |  | | <qeqeWqIq d | k rt   | d <n  |  j
 | | | j |  | d |
 <t j |
  } | d  k	 r | j d  } t  | | d |  q q W| j |  q Wt! | | | d | } x| D]} | | } g  | j"   D]' \ } } t# | t$  r| | f ^ q}  g  | j"   D]' \ } } t# | t%  r| | f ^ q}! |  s|! rx | j& D] } | | }" x? |  D]7 \ } } y | j' |  |" | <Wq.t( k
 rdq.Xq.WxK |! D]C \ } } y# | j) pt* | j' |  |" | <Wqpt( k
 rqpXqpWqWn  xE | j+ D]: }# y | j, i |# | 6  } Wqt- t( f k
 rqXqWq}W| S(	   NRc   s   google:datastoret   __get_lazy_reference__Rq   R  t   _extrai    t   rawrows(.   R   R<   R  R   RG   R  R   t	   enumerateR   R5   R$  t
   filter_outR  R   R<  Rc   t   gae_itemR    t   update_recordR!   t   delete_recordR   t   _lazy_tablesR   t   _referenced_byt   _referee_nameR   R   R   R   R   t   searcht   setattrR   R4  Rh   R   R   t   recordsRd  R   t   handlerR   t   virtualfieldst   setvirtualfieldsR   ($   Ri   R  R  R  R#  R-   R   t   virtualtablest   new_rowst   tmpst   colnamet   col_mR   R   Rq   R  t   ftt   it   rowt   new_rowt   jR   t   tmpt   colsetRc   R  t   referee_linkt   new_column_namet   column_namet   rowsobjRd  R,  t   fields_virtualt   fields_lazyt   boxR+  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  &  s    	

	 	

	

	 	
!!
#c         C   s   |  j  j } x | D] } |  j  | } | j d  k rK | | j |  @} n  | | k r | | j } | d  k	 r | | | k } | d  k r | } q | | @} q q q W| S(   N(   R   t   _request_tenantt   _common_filterRG   R   (   Ri   R$  R  t   tenant_fieldnameR   Rq   R   t   newquery(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    	c            sA     f d   } t    j d   j |  | |  | |  f  S(   Nc            s|   i d t  t  6d t  d  6d t  d  6} |  d  k r= d St |  t  rV t |   S  j |  | j t  |   d   Sd  S(   NRN   RW   i    R[   g      ?R   RO   (   R   R   RG   Rh   R
   Rx   RS  R5   (   R  R   (   Ri   (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRS    s    -  
s    CASE WHEN %s THEN %s ELSE %s END(   R
   R   RE  (   Ri   R$  R@  Rd  RS  (    (   Ri   sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   CASE  s    c         C   s,   | d  k	 r! d |  j | | f S|  j | S(   Ns   %s AS (   RG   R9   (   Ri   R   t   ot(    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   sqlsafe_table  s    c         C   s   |  j  | S(   N(   R9   (   Ri   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   sqlsafe_field  s    (   RC   RD   R/   t   __metaclass__R  RG   Rg   R   R   R   R6   R:  t   support_distributed_transactionR1   R   R  R&  R   t	   connectorR  R  R  R  R  R9   t
   test_queryR   Rk   Rm   Rs   Rv   Ry   R{   R   R   R   R   R   R   R   R   R   R   R)  R  R;  RG  RH  RI  RK  RM  RN  RO  RP  RQ  RR  R   RV  RW  RX  R   R[  R   R\  R`  Rb  Rg  Re  Ro  Rp  Rq  Rr  Rs  Rt  Rv  Rw  Rx  Rz  R{  R  R  R  R  R  R  R  R  R~  R}  R  R  R  R  R  R  R  R  R  R  RE  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R]  R  R  R  R  R  R  R  R7  R   R  R  R  RS  R  R   R  R$  R&  R'  R+  R0  R;  R=  R@  RB  RC  RD  RE  RF  RG  RK  RL  R  R  Ru  Rw  Rx  (    (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRF   B   sb  	
												 y																			
																											&					
																								\						
											b			RA  c           B   s  e  Z e Z d  Z e d    Z d   Z d   Z d   Z	 d/ d  Z d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d/ d  Z d/ d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ d   Z% d    Z& d!   Z' d"   Z( d#   Z) d$   Z* d%   Z+ d&   Z, d'   Z- d(   Z. d)   Z/ d*   Z0 d+   Z1 d,   Z2 d- d/ d.  Z3 RS(0   s   %sc         C   s9   t  |  t  r |  j d  St  |  t  s5 t |   S|  S(   NR   (   Rh   Rx   R   R  (   R@   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt
   to_unicode  s
    
c         C   s   | j  d k S(   Ni    (   Rp   (   Ri   Rq   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRs     s    c         C   s  | j  } t | t  r$ |   } n  t | t  r@ | j |  St | t  } | o^ | d  } | r | sv g  } n  t | t t f  s | g } n  g  | D] } | r | ^ q } n  | d k r | o | d  d k r d  S| d  k	 rt | t  r*| r*g  | D] } |  j	 | |  ^ q	} q| d k rEt
 |  } q| d k r`t |  } q| r| d  rt | t t f  r| d
 } n  t
 |  } q| d k r| rt |  d j   d k rt } qt } q| d k rt | t j  sFt t t |  j   j d   \ } }	 }
 t j | |	 |
  } qt | t j  r| j | j | j } }	 }
 t j | |	 |
  } qq| d k r+t | t j  st t t |  j   j d  d   } t |  d k r| \ } } } n | d g \ } } } t j | | |  } qq| d k rt | t j  st t t |  d  j   j d   \ } }	 }
 t t t |  d j   j d  d   } x# t |  d k  r| j d  qW| \ } } } t j | |	 |
 | | |  } qq| d k rq| d k rwt | t  r|  j |  } |  j j  d  rb|  j j! d |  } qtt" j# |  } qq| r| d  rt |  j |  S| rt t |  S|  j |  } n  | S(   Ns   list:RY  i   R  R  R  R  RW   RX   Rc   R[   Rd   RN   i    R  R^   R(  R`   R   i   Rb   i
   i   RT   R   RI  s   list:string(   s   sts   tes   pas   up(   s   integers   bigints   id($   R   Rh   R	  R   R
  Rx   R  R  RG   RS  Rj  RZ   R   R   R  R   R6   Rb   R^   R   Rw   R   R   t   yeart   montht   dayR`   R   R   RJ  R}  R   R  R  R   RH  (   Ri   R@   R  R  t	   is_stringt   is_listR+  R  R)  R  R*  R,  R-  R.  R/  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRS    s    		"("		-(1,$c         C   s   d | | f S(   Ns   insert %s in %s(    (   Ri   Rq   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRg    s    c         C   s   d t  |  S(   Ns   count %s(   R  (   Ri   R$  R(   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s   d t  |  t  |  f S(   Ns   select %s where %s(   R  (   Ri   R$  R  R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s   d t  |  t  |  f S(   Ns   delete %s where %s(   R  (   Ri   R   R$  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s#   d t  |  t  |  t  |  f S(   Ns   update %s (%s) where %s(   R  (   Ri   R   R$  R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s   d S(   s9   
        remember: no transactions on many NoSQL
        N(    (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s   d S(   s9   
        remember: no transactions on many NoSQL
        N(    (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR    s    c         C   s   d S(   s9   
        remember: no transactions on many NoSQL
        N(    (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  $  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRs  ,  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRr  -  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  .  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  /  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRz  0  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR{  1  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  2  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  3  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  4  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  5  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRG  6  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRH  7  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RJ  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRK  8  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRN  9  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RJ  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRO  :  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRQ  ;  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRR  <  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R  RZ  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR[  =  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR   >  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   RF  RT  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRx  ?  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   Rq   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRb  @  s    c         O   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  A  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  B  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  C  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  D  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R<  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  E  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   Rq   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR7  F  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   Rq   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR   G  s    c         K   s   d  S(   N(    (   Ri   R$  Rq   R>   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  H  s    c         O   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  I  s    c         O   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R   R   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  J  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R@   R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  K  s    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   Rq   (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR   L  s    i    c         C   s   t  d   d  S(   Ns   Not supported(   R   (   Ri   R  R  R  (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyR  M  s    N(4   RC   RD   R6   R  R9   t   staticmethodR}  Rs   RS  Rg  RG   R  R  R  R  R  R  R  Rs  Rr  R  R  Rz  R{  R  R  R  R  RG  RH  RK  RN  RO  RQ  RR  R[  R   Rx  Rb  R  R  R  R  R  R7  R   R  R  R  R  R   R  (    (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyRA    s^   		I																																						(B   R:   R   R   R   Rb   R\   R8  R`   R  R   t   _compatR    R   R   R   R   t   _globalsR   t   _loadR   R   t   _gaeR   R   R	   t   objectsR
   R   R   R   R   R   R   R   R   R   R   t   helpers.regexR   R   R   t   helpers.methodsR   R   R   R   R   t   helpers.classesR   R   R   R    R!   R  t
   LambdaTypet   FunctionTypet   BuiltinFunctionTypet
   MethodTypet   BuiltinMethodTypeR	  R  R  R   R/   RF   RA  (    (    (    sP   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/packages/dal/pydal/adapters/base.pyt   <module>   sF   (L((      t