webmcp

diff libraries/mondelefant/mondelefant_atom_connector.lua @ 107:6b435d3c0b14

Backed out changeset bbfbbddf13ad (support for intervals)
author jbe
date Sun Nov 04 17:14:49 2012 +0100 (2012-11-04)
parents bbfbbddf13ad
children 8d7665e0d490
line diff
     1.1 --- a/libraries/mondelefant/mondelefant_atom_connector.lua	Sun Nov 04 04:55:22 2012 +0100
     1.2 +++ b/libraries/mondelefant/mondelefant_atom_connector.lua	Sun Nov 04 17:14:49 2012 +0100
     1.3 @@ -75,24 +75,6 @@
     1.4    return conn:quote_string(tostring(value)) .. "::time"
     1.5  end
     1.6  
     1.7 -input_converters[atom.interval] = function(conn, value)
     1.8 -  return (
     1.9 -    conn:quote_string(
    1.10 -      table.concat(
    1.11 -        {
    1.12 -          tostring(value.years),   "years",
    1.13 -          tostring(value.months),  "months",
    1.14 -          tostring(value.days),    "days",
    1.15 -          tostring(value.hours),   "hours",
    1.16 -          tostring(value.minutes), "minutes",
    1.17 -          tostring(value.seconds), "seconds"
    1.18 -        },
    1.19 -        " "
    1.20 -      )
    1.21 -    ) .. "::interval"
    1.22 -  )
    1.23 -end
    1.24 -
    1.25  
    1.26  output_converters = setmetatable({}, { __mode = "k" })
    1.27  
    1.28 @@ -147,59 +129,6 @@
    1.29  output_converters.time = time_loader_func
    1.30  output_converters.timetz = time_loader_func
    1.31  
    1.32 -output_converters.interval = function(str)
    1.33 -  local years, months, days, hours, minutes, seconds = 0, 0, 0, 0, 0, 0
    1.34 -  local any_match = false
    1.35 -  for amount, unit in string.gmatch(str, "(%-?[0-9]+)%s*([A-Za-z]+)") do
    1.36 -    local unit = string.lower(unit)
    1.37 -    if string.match(unit, "^y") then
    1.38 -      years = years + tonumber(amount)
    1.39 -      any_match = true
    1.40 -    elseif string.match(unit, "^mo") then
    1.41 -      months = months + tonumber(amount)
    1.42 -      any_match = true
    1.43 -    elseif string.match(unit, "^d") then
    1.44 -      days = days + tonumber(amount)
    1.45 -      any_match = true
    1.46 -    elseif string.match(unit, "^h") then
    1.47 -      hours = hours + tonumber(amount)
    1.48 -      any_match = true
    1.49 -    elseif string.match(unit, "^mi") then
    1.50 -      minutes = minutes + tonumber(amount)
    1.51 -      any_match = true
    1.52 -    elseif string.match(unit, "^s") then
    1.53 -      seconds = seconds + tonumber(amount)
    1.54 -      any_match = true
    1.55 -    else
    1.56 -      return atom.interval.invalid
    1.57 -    end
    1.58 -  end
    1.59 -  local sign, h, m, s = string.match(str, "(%-?)([0-9]+):([0-9]+):([0-9]+)")
    1.60 -  if h then
    1.61 -    if sign == "-" then
    1.62 -      hours   = hours   - tonumber(h)
    1.63 -      minutes = minutes - tonumber(m)
    1.64 -      seconds = seconds - tonumber(s)
    1.65 -    else
    1.66 -      hours   = hours   + tonumber(h)
    1.67 -      minutes = minutes + tonumber(m)
    1.68 -      seconds = seconds + tonumber(s)
    1.69 -    end
    1.70 -    any_match = true
    1.71 -  end
    1.72 -  if not any_match then
    1.73 -    return atom.interval.invalid
    1.74 -  end
    1.75 -  if string.match(str, "%sago%s*$") then
    1.76 -    years, months, days = -years, -months, -days
    1.77 -    hours, minutes, seconds = -hours, -minutes, -seconds
    1.78 -  end
    1.79 -  return atom.interval:new{
    1.80 -    years = years, months = months, days = days,
    1.81 -    hours = hours, minutes = minutes, seconds = seconds
    1.82 -  }
    1.83 -end
    1.84 -
    1.85  mondelefant.postgresql_connection_prototype.type_mappings = {
    1.86    int8 = atom.integer,
    1.87    int4 = atom.integer,

Impressum / About Us