comparison lib/ur/basis.urs @ 750:059074c8d2fc

LEFT JOIN
author Adam Chlipala <adamc@hcoop.net>
date Tue, 28 Apr 2009 11:05:28 -0400
parents 16bfd9e244cd
children f95d652086cd
comparison
equal deleted inserted replaced
749:16bfd9e244cd 750:059074c8d2fc
232 val sql_inner_join : tabs1 ::: {{Type}} -> tabs2 ::: {{Type}} 232 val sql_inner_join : tabs1 ::: {{Type}} -> tabs2 ::: {{Type}}
233 -> [tabs1 ~ tabs2] 233 -> [tabs1 ~ tabs2]
234 => sql_from_items tabs1 -> sql_from_items tabs2 234 => sql_from_items tabs1 -> sql_from_items tabs2
235 -> sql_exp (tabs1 ++ tabs2) [] [] bool 235 -> sql_exp (tabs1 ++ tabs2) [] [] bool
236 -> sql_from_items (tabs1 ++ tabs2) 236 -> sql_from_items (tabs1 ++ tabs2)
237
238 class nullify :: Type -> Type -> Type
239 val nullify_option : t ::: Type -> nullify (option t) (option t)
240 val nullify_prim : t ::: Type -> sql_injectable_prim t -> nullify t (option t)
241
242 val sql_left_join : tabs1 ::: {{Type}} -> tabs2 ::: {{(Type * Type)}}
243 -> [tabs1 ~ tabs2]
244 => $(map (fn r => $(map (fn p :: (Type * Type) => nullify p.1 p.2) r)) tabs2)
245 -> sql_from_items tabs1 -> sql_from_items (map (map (fn p :: (Type * Type) => p.1)) tabs2)
246 -> sql_exp (tabs1 ++ map (map (fn p :: (Type * Type) => p.1)) tabs2) [] [] bool
247 -> sql_from_items (tabs1 ++ map (map (fn p :: (Type * Type) => p.2)) tabs2)
237 248
238 val sql_query1 : tables ::: {{Type}} 249 val sql_query1 : tables ::: {{Type}}
239 -> grouped ::: {{Type}} 250 -> grouped ::: {{Type}}
240 -> selectedFields ::: {{Type}} 251 -> selectedFields ::: {{Type}}
241 -> selectedExps ::: {Type} 252 -> selectedExps ::: {Type}