Skip to content

Operation Support Matrix

Backends are shown in descending order of the number of supported operations.

The Snowflake backend coverage is an overestimate

The Snowflake backend translation functions are reused from the PostgreSQL backend and some operations that claim coverage may not work.

The Snowflake backend is a good place to start contributing!

Core Operations

Backends dask pandas duckdb trino snowflake bigquery clickhouse postgres polars pyspark mysql impala sqlite mssql datafusion
API Coverage 192 (86%) 192 (86%) 191 (85%) 191 (85%) 190 (85%) 189 (84%) 182 (81%) 182 (81%) 169 (75%) 169 (75%) 162 (72%) 161 (72%) 158 (71%) 149 (67%) 58 (26%)
Abs
Acos
Add
Alias
All
AnalyticVectorizedUDF
And
Any
ApproxCountDistinct
ApproxMedian
Arbitrary
ArgMax
ArgMin
ArrayCollect
ArrayColumn
ArrayConcat
ArrayIndex
ArrayLength
ArrayRepeat
ArraySlice
Asin
Atan2
Atan
BaseConvert
BetweenTime
BitAnd
BitOr
BitXor
BitwiseAnd
BitwiseLeftShift
BitwiseNot
BitwiseOr
BitwiseRightShift
BitwiseXor
Bucket
Capitalize
Cast
CategoryLabel
Ceil
Clip
Coalesce
Correlation
Cos
Cot
CountDistinct
CountStar
Count
Covariance
CumeDist
CumulativeAll
CumulativeAny
CumulativeMax
CumulativeMean
CumulativeMin
CumulativeSum
DateAdd
DateDiff
DateFromYMD
DateSub
DateTruncate
Date
DayOfWeekIndex
DayOfWeekName
Degrees
DenseRank
E
ElementWiseVectorizedUDF
EndsWith
Equals
ExistsSubquery
Exp
ExtractAuthority
ExtractDayOfYear
ExtractDay
ExtractEpochSeconds
ExtractFile
ExtractFragment
ExtractHost
ExtractHour
ExtractMillisecond
ExtractMinute
ExtractMonth
ExtractPath
ExtractProtocol
ExtractQuarter
ExtractQuery
ExtractSecond
ExtractUserInfo
ExtractWeekOfYear
ExtractYear
FindInSet
FirstValue
FloorDivide
Floor
GreaterEqual
Greater
Greatest
GroupConcat
HashBytes
Hash
IdenticalTo
IfNull
IntervalAdd
IntervalFloorDivide
IntervalFromInteger
IntervalMultiply
IntervalSubtract
IsInf
IsNan
IsNull
JSONGetItem
LPad
LStrip
Lag
LastValue
Lead
Least
LessEqual
Less
Ln
Log10
Log2
Log
Lowercase
MapContains
MapGet
MapKeys
MapLength
MapMerge
MapValues
Map
Max
Mean
MinRank
Min
Mode
Modulus
MultiQuantile
Multiply
NTile
Negate
NotAll
NotAny
NotContains
NotEquals
NotExistsSubquery
NotNull
Not
NthValue
NullIfZero
NullIf
NullLiteral
Or
ParseURL
PercentRank
Pi
Power
Quantile
RPad
RStrip
Radians
RandomScalar
ReductionVectorizedUDF
RegexExtract
RegexReplace
RegexSearch
Repeat
Reverse
Round
RowID
RowNumber
SearchedCase
Sign
SimpleCase
Sin
SortKey
Sqrt
StandardDev
StartsWith
StrRight
Strftime
StringAscii
StringConcat
StringContains
StringFind
StringJoin
StringLength
StringReplace
StringSQLILike
StringSplit
StringToTimestamp
Strip
StructColumn
StructField
Substring
Subtract
Sum
TableArrayView
TableColumn
Tan
TimeAdd
TimeDiff
TimeFromHMS
TimeSub
TimeTruncate
Time
TimestampAdd
TimestampDiff
TimestampFromUNIX
TimestampFromYMDHMS
TimestampNow
TimestampSub
TimestampTruncate
TimestampUnary
ToIntervalUnit
Translate
TypeOf
Unnest
Uppercase
Variance
Where
Window
Xor
ZeroIfNull

Geospatial Operations

Backends mysql postgres bigquery
API Coverage 45 (85%) 45 (85%) 36 (68%)
GeoArea
GeoAsBinary
GeoAsEWKB
GeoAsEWKT
GeoAsText
GeoAzimuth
GeoBuffer
GeoCentroid
GeoContainsProperly
GeoContains
GeoCoveredBy
GeoCovers
GeoCrosses
GeoDFullyWithin
GeoDWithin
GeoDifference
GeoDisjoint
GeoDistance
GeoEndPoint
GeoEnvelope
GeoEquals
GeoGeometryN
GeoGeometryType
GeoIntersection
GeoIntersects
GeoIsValid
GeoLength
GeoLineLocatePoint
GeoLineMerge
GeoLineSubstring
GeoMaxDistance
GeoNPoints
GeoNRings
GeoOrderingEquals
GeoOverlaps
GeoPerimeter
GeoPointN
GeoPoint
GeoSRID
GeoSetSRID
GeoSimplify
GeoStartPoint
GeoTouches
GeoTransform
GeoUnaryUnion
GeoUnion
GeoWithin
GeoXMax
GeoXMin
GeoX
GeoYMax
GeoYMin
GeoY

Last update: December 9, 2022