GlareDB / glaredb

GlareDB: An analytics DBMS for distributed data
https://glaredb.com
MIT License
706 stars 40 forks source link

feat: More numeric functions #3303

Closed scsmithr closed 18 hours ago

scsmithr commented 1 day ago

Adds a bunch of numeric functions. Currently many of these work on floats, decimal support to be added.

Current scalar function list:

>> select * from list_functions() where function_type = 'scalar';
┌───────────────┬───────────────┬───────────────┬───────────────┐
│ database_name │ schema_name   │ function_name │ function_type │
│ Utf8          │ Utf8          │ Utf8          │ Utf8          │
├───────────────┼───────────────┼───────────────┼───────────────┤
│ system        │ glare_catalog │ or            │ scalar        │
│ system        │ glare_catalog │ ceil          │ scalar        │
│ system        │ glare_catalog │ floor         │ scalar        │
│ system        │ glare_catalog │ degrees       │ scalar        │
│ system        │ glare_catalog │ radians       │ scalar        │
│ system        │ glare_catalog │ contains      │ scalar        │
│ system        │ glare_catalog │ struct_pack   │ scalar        │
│ system        │ glare_catalog │ negate        │ scalar        │
│ system        │ glare_catalog │ random        │ scalar        │
│ system        │ glare_catalog │ list_extract  │ scalar        │
│ system        │ glare_catalog │ is_null       │ scalar        │
│ system        │ glare_catalog │ is_not_true   │ scalar        │
│ system        │ glare_catalog │ is_false      │ scalar        │
│ system        │ glare_catalog │ +             │ scalar        │
│ system        │ glare_catalog │ mul           │ scalar        │
│ system        │ glare_catalog │ /             │ scalar        │
│ system        │ glare_catalog │ rem           │ scalar        │
│ system        │ glare_catalog │ mod           │ scalar        │
│ system        │ glare_catalog │ <             │ scalar        │
│ system        │ glare_catalog │ abs           │ scalar        │
│ system        │ glare_catalog │ acos          │ scalar        │
│ system        │ glare_catalog │ atan          │ scalar        │
│ system        │ glare_catalog │ cos           │ scalar        │
│ system        │ glare_catalog │ exp           │ scalar        │
│ system        │ glare_catalog │ log           │ scalar        │
│ system        │ glare_catalog │ log2          │ scalar        │
│ system        │ glare_catalog │ isnan         │ scalar        │
│ system        │ glare_catalog │ substring     │ scalar        │
│ system        │ glare_catalog │ prefix        │ scalar        │
│ system        │ glare_catalog │ length        │ scalar        │
│ system        │ glare_catalog │ char_length   │ scalar        │
│ system        │ glare_catalog │ not           │ scalar        │
│ system        │ glare_catalog │ list_values   │ scalar        │
│ system        │ glare_catalog │ date_part     │ scalar        │
│ system        │ glare_catalog │ date_trunc    │ scalar        │
│ system        │ glare_catalog │ epoch         │ scalar        │
│ system        │ glare_catalog │ array_distan… │ scalar        │
│ system        │ glare_catalog │ sub           │ scalar        │
│ system        │ glare_catalog │ div           │ scalar        │
│ system        │ glare_catalog │ %             │ scalar        │
│ system        │ glare_catalog │ <>            │ scalar        │
│ system        │ glare_catalog │ !=            │ scalar        │
│ system        │ glare_catalog │ <=            │ scalar        │
│ system        │ glare_catalog │ >=            │ scalar        │
│ system        │ glare_catalog │ sin           │ scalar        │
│ system        │ glare_catalog │ sqrt          │ scalar        │
│ system        │ glare_catalog │ tan           │ scalar        │
│ system        │ glare_catalog │ substr        │ scalar        │
│ system        │ glare_catalog │ suffix        │ scalar        │
│ system        │ glare_catalog │ character_le… │ scalar        │
│ system        │ glare_catalog │ regexp_repla… │ scalar        │
│ system        │ glare_catalog │ like          │ scalar        │
│ system        │ glare_catalog │ is_true       │ scalar        │
│ system        │ glare_catalog │ is_not_false  │ scalar        │
│ system        │ glare_catalog │ l2_distance   │ scalar        │
│ system        │ glare_catalog │ add           │ scalar        │
│ system        │ glare_catalog │ -             │ scalar        │
│ system        │ glare_catalog │ *             │ scalar        │
│ system        │ glare_catalog │ and           │ scalar        │
│ system        │ glare_catalog │ =             │ scalar        │
│ system        │ glare_catalog │ >             │ scalar        │
│ system        │ glare_catalog │ asin          │ scalar        │
│ system        │ glare_catalog │ cbrt          │ scalar        │
│ system        │ glare_catalog │ ln            │ scalar        │
│ system        │ glare_catalog │ repeat        │ scalar        │
│ system        │ glare_catalog │ starts_with   │ scalar        │
│ system        │ glare_catalog │ ends_with     │ scalar        │
│ system        │ glare_catalog │ concat        │ scalar        │
│ system        │ glare_catalog │ epoch_ms      │ scalar        │
│ system        │ glare_catalog │ epoch_s       │ scalar        │
│ system        │ glare_catalog │ is_not_null   │ scalar        │
└───────────────┴───────────────┴───────────────┴───────────────┘