Source file mariadb_utils.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let find_request_sql
      sql_select_columns
      table_name
      ?(default_where = None)
      ?(count = false)
      ?(joins = "")
      where_fragment
  =
  let where_fragment =
    CCOption.map_or ~default:where_fragment (fun default_where ->
      [%string
        {sql|
          WHERE %{default_where}
            AND %{CCString.replace ~which:`Left ~by:"" ~sub:"WHERE" where_fragment}
        |sql}])
  in
  let columns =
    if count then "COUNT(*)" else sql_select_columns |> CCString.concat ", "
  in
  Format.asprintf
    {sql|SELECT %s FROM %s %s %s|sql}
    columns
    table_name
    joins
    (where_fragment default_where)
;;