///
declare namespace FxOrmDb {
interface DatabaseBaseConfig extends /* FxDbDriverNS.DBConnectionConfig, */Class_UrlObject {
pool: FxDbDriverNS.ConnectionPoolOptions
}
interface DatabaseBase extends FxDbDriverNS.Driver {
eventor: Class_EventEmitter
query: {
(query: string, cb?: FxOrmNS.GenericCallback): T
}
connect: {
(cb?: FxOrmNS.GenericCallback): void
(): ConnType
}
}
interface DatabaseBase_SQLite extends DatabaseBase {
readonly use_memory: boolean
all: DatabaseBase_SQLite['query']
get: DatabaseBase_SQLite['query']
}
// interface DatabaseBase_MySQL extends DatabaseBase {}
// not supported now.
interface DatabaseBase_PostgreSQL extends DatabaseBase {
}
// common
type AGGREGATION_METHOD_COMMON =
"ABS"
| "ROUND"
| "AVG"
| "MIN"
| "MAX"
| "SUM"
| "COUNT"
| "DISTINCT"
type AGGREGATION_METHOD_TUPLE__COMMON = [
/* alias */
string,
/* real method in sql */
AGGREGATION_METHOD_COMPLEX
]
type AGGREGATION_METHOD_SQLITE = AGGREGATION_METHOD_COMMON | "RANDOM"
type AGGREGATION_METHOD_MYSQL =
AGGREGATION_METHOD_COMMON
| "CEIL"
| "FLOOR"
| "LOG"
| "LOG2"
| "LOG10"
| "EXP"
| "POWER"
| "ACOS"
| "ASIN"
| "ATAN"
| "COS"
| "SIN"
| "TAN"
| "CONV"
| "RAND"
| "RADIANS"
| "DEGREES"
| "SUM"
| "COUNT"
| "DISTINCT"
type AGGREGATION_METHOD_TUPLE__MYSQL = [ "RANDOM", "RAND" ]
type AGGREGATION_METHOD_POSTGRESQL =
AGGREGATION_METHOD_COMMON
| "CEIL"
| "FLOOR"
| 'RANDOM'
| "LOG"
| "EXP"
| "POWER"
| "ACOS"
| "ASIN"
| "ATAN"
| "COS"
| "SIN"
| "TAN"
| "RADIANS"
| "DEGREES"
type AGGREGATION_METHOD_COMPLEX = AGGREGATION_METHOD_POSTGRESQL | AGGREGATION_METHOD_SQLITE | AGGREGATION_METHOD_MYSQL
}