Add math function for sqlite - may still be broken

This commit is contained in:
Worros 2009-11-18 00:12:24 +08:00
parent eadd7c045c
commit 33592fbc4e

View File

@ -20,6 +20,7 @@ import os
import re import re
import sys import sys
import logging import logging
import math
from time import time, strftime from time import time, strftime
from Exceptions import * from Exceptions import *
@ -53,6 +54,10 @@ class VARIANCE:
def finalize(self): def finalize(self):
return float(var(self.store)) return float(var(self.store))
class sqlitemath:
def mod(self, a, b):
return a%b
class fpdb_db: class fpdb_db:
MYSQL_INNODB = 2 MYSQL_INNODB = 2
PGSQL = 3 PGSQL = 3
@ -148,6 +153,9 @@ class fpdb_db:
, detect_types=sqlite3.PARSE_DECLTYPES ) , detect_types=sqlite3.PARSE_DECLTYPES )
sqlite3.register_converter("bool", lambda x: bool(int(x))) sqlite3.register_converter("bool", lambda x: bool(int(x)))
sqlite3.register_adapter(bool, lambda x: "1" if x else "0") sqlite3.register_adapter(bool, lambda x: "1" if x else "0")
self.db.create_function("floor", 1, math.floor)
tmp = sqlitemath()
self.db.create_function("mod", 2, tmp.mod)
if use_numpy: if use_numpy:
self.db.create_aggregate("variance", 1, VARIANCE) self.db.create_aggregate("variance", 1, VARIANCE)
else: else: