Implement scalar functions
- Dominant language
- Python
- Stars
- 6
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
CrateDB supports a variety of scalar functions, see https://github.com/crate/cratedb-django/commit/810485ef947a00969586a94338da988dce83c74f for an example implementing `gen_random_text_uuid`
## strings
- [x] concat
- [x] concat_ws
- [x] format
- [ ] substr
- [ ] substring
- [ ] char_length
- [ ] length
- [ ] bit_length
- [ ] octet_length
- [ ] ascii
- [ ] chr
- [x] lower
- [x] upper
- [ ] initcap
- [ ] sha1
- [ ] md5
- [ ] replace
- [ ] translate
- [ ] trim
- [ ] ltrim
- [ ] rtrim
- [ ] btrim
- [ ] quote_ident
- [ ] left
- [ ] right
- [ ] starts_with
- [ ] lpad
- [ ] rpad
- [ ] encode
- [ ] decode
- [ ] repeat
- [ ] strpos
- [ ] position
- [x] reverse
- [ ] split_part
- [ ] parse_uri
- [ ] parse_url
## math
- [x] abs
- [ ] sign
- [ ] ceil
- [ ] ceiling
- [ ] degrees
- [ ] exp
- [ ] floor
- [ ] ln
- [ ] log
- [ ] modulus
- [ ] mod
- [ ] power
- [ ] radians
- [ ] random
- [x] gen_random_text_uuid
- [ ] round
- [ ] trunc
- [ ] sqrt
- [ ] sin
- [ ] asin
- [ ] cos
- [ ] acos
- [ ] tan
- [ ] cot
- [ ] atan
- [ ] atan2
- [ ] pi
## time
- [ ] date_trunc
- [ ] date_bin
- [ ] extract
- [ ] current_time
- [ ] current_timestamp
- [ ] curdate
- [x] current_date
- [ ] now
- [ ] date_format
- [ ] timezone
- [ ] to_char
- [ ] age
## array
- [ ] array_append
- [ ] array_cat
- [ ] array_unique
- [ ] array_difference
- [ ] array
- [ ] array_upper
- [ ] array_length
- [ ] array_lower
- [ ] array_overlap
- [ ] array_set
- [ ] array_slice
- [ ] array_to_string
- [ ] string_to_array
- [ ] array_min
- [ ] array_position
- [ ] array_prepend
- [ ] array_max
- [ ] array_sum
- [ ] array_avg
- [ ] array_unnest
- [ ] null_or_empty
## objects
- [ ] object_keys
- [ ] concat
- [ ] null_or_empty
## regex
- [ ] regexp_replace
## geo
- [ ] distance
- [ ] within
- [ ] intersects
- [ ] latitude
- [ ] longitude
- [ ] geohash
- [ ] area
## conditional
- [ ] case
- [ ] if
- [ ] coalesce
- [ ] greatest
- [ ] least
- [ ] nullif
## system
- [ ] current_schema
- [ ] current_schemas
- [ ] current_user
- [ ] current_role
- [ ] user
- [ ] session_user
- [ ] has_database_privilege
- [ ] has_schema_privilege
- [ ] has_table_privilege
- [ ] pg_backend_pid
- [ ] pg_postmaster_start_time
- [ ] current_catalog
- [ ] current_database
- [ ] current_setting
- [ ] pg_get_expr
- [ ] pg_get_partkeydef
- [ ] pg_get_serial_sequence
- [ ] pg_encoding_to_char
- [ ] pg_get_userbyid
- [ ] pg_typeof
- [ ] pg_function_is_visible
## special functions
- [ ] knn_match
- [ ] ignore3vl
## vector functions
- [ ] vector_similarity
Contributor guide
Research direction
Start with the linked commit implementing `gen_random_text_uuid`, then inspect the existing checked functions in this checklist to find their implementation and test locations. Since the issue does not define a target subset, agree on which unchecked function or functions to handle; done means implementing that subset and covering the resulting behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- django, python, sql
- Domain
- backend, database
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100