the portable Python dataframe library
ibis.get_backend
function (2d27df8)ibis.set_backend
function (e7fabaf)connect()
with no arguments (67eed42)as_struct
method to convert schemas to structs (64be7b1)read_json
function for consuming newline-delimited JSON files (65e65c1)DATETIME2
and DATETIMEOFFSET
(aa9f151)connect()
with no arguments (78cbbdd)Map(string, string)
support via the built-in HSTORE
extension (f968f8f)ArrayCollect
(c425f68)NthValue
(0dca57c)ops.Arbitrary
(45f4f05)ops.StructColumn
(41698ed)StringSplit
(e6acc09)StructField
and struct literals (286a5c3)TimestampFromUNIX
(314637d)TimestampFromYMDHMS
(1eba8be)typeof
operation (029499c)_get_schema_using_query
in SQLite backend (7ff84c8)ops.ExistsSubquery
and ops.NotExistsSubquery
(9b9b315)_default_backend
(11252af)StructType
and Schema
(c9e7078)read_csv
on URLs work (9e61816)to_pyarrow
/to_pyarrow_batches
(a1a6902)order_by
on nonexistent column (57b1dd8)TimestampNow
(42d95b0)ops.TableArrayView
(a1ad2b7)typeof
test and bring back implementations (7dc5356)exec_driver_sql
in view teardown (2599c9b)AlchemyCompiler
(9f4ff54)ibis.map
(045edc7)pathlib.Path
correctly in attach
(0415bd3)to_pyarrow_batches
documentation (ec1ffce)StructType
fields rather than names
and types
tuples (ff34c7b).raw_sql
call (abc939e)Schema
fields rather than names
and types
tuples (318179a)_find_backend
implementation (60f1a1b)parse_json
call in ops.StructField
impl (9e80231)unary
instead of fixed_arity(..., 1)
(4a1c7c9)_get_schema_using_query
to base class (296cd7d)isnot
(4ec53a4)exec_driver_sql
everywhere (e8f96b6)_CorrelatedRefCheck
(f49e429)and_
and or_
helpers (94bd4df)argmax
and argmin
column methods (b52216a)distinct
to Intersection
and Difference
operations (cd9a34c)ibis.memtable
API for constructing in-memory table expressions (0cc6948)ibis.sql
to easily get a formatted SQL string (d971cc3)Table.unpack()
and StructValue.lift()
APIs for projecting struct fields (ced5f53)psql
to a show_sql
public API (877a05d)argmin
and argmax
(ee7c878)StringReplace
execution (1389f4b)argmin
and argmax
(854aea7)ibis.connect
(fbde95d)argmin
and argmax
(abf03f1)argmin
and argmax
(bf9b948)NotContains
on grouped data (976dce7)StringReplace
execution (578795f)ibis.connect
for pyspark (a191744)Intersection
and Difference
(9845a3c)ibis.connect
with sqlalchemy backends (b6cefb9)Intersection
and Difference
(2bc0b69)StringReplace
translation (29daa32)table.sort_by(ibis.random())
(693005d)rich
to format Table.info()
output (67234c3)sqlglot
for pretty printing SQL (a3c81c5)times
argument to UInt64
(b643544)repr
for SQL string VALUES
data (75af658)fetch_arrow_table()
to be able to handle big timestamps (85a76eb)difference
implementation (88a78fa)where
implementation (49f8845)left
(48f6c1e)GroupConcat
(6545f4d)StringReplace
implementation (22cb297)ibis.connect
works with pyspark (a7ab107)SQLQueryResult
translation (786a50f)InMemoryTable
a subclass of PhysicalTable
(aac9524)sort_by
asc/desc handling (222b2ba)right
kwarg in union
/intersect
/difference
(719a5a1)path
argument in favor of database
(fcacc20)path
argument in favor of database
(0f85919)VALUES
(422c98d)to_sql
(e2821a5)memtable
docstrings (72bc0f5)__getattr__
support to StructValue
(75bded1)Schema
objects in public ibis.schema
(0daac6c).tables
accessor to BaseBackend
(7ad27f0)e
function to public API (3a07e70)ops.StructColumn
operation (020bfdb)isin
/notin
(e1374a4)ops.StructColumn
operation (0063007)intersect_class
and difference_class
overrides in base SQL backend (2c46a15)ops.StructColumn
operation (211bfab)ir.Table
instance from DuckDB's register
API (0d05d41)Where
expressions (b8f4120)Deferred
objects work in aggregations (bbb376c)None
(9f91d6b).
chars are parsed correctly (9448fd3)from_unixtime
(1b43004)not
(330ab4f)has_operation
(5082346)pandas.Timestamp
(fe95dca)_projection
as cached_property to avoid reconstruction of projections (98510c8)ibis.expr.datatypes.DataType.scalar_type
and DataType.column_type
factory
methods have been removed, DataType.scalar
and DataType.column
class
fields can be used to directly construct a corresponding expression instance
(though prefer to use operation.to_expr()
)ibis.expr.types.ValueExpr._name
and ValueExpr._dtype`` fields are not accassible anymore. While these were not supposed to used directly now
ValueExpr.has_name(),
ValueExpr.get_name()and
ValueExpr.type()` methods
are the only way to retrieve the expression's name and datatype.ibis.expr.operations.Node.output_type
is a property now not a method,
decorate those methods with @property
ibis.expr.operations.ValueOp
subclasses must define output_shape
and
output_dtype
properties from now on (note the datatype abbreviation dtype
in the property name)ibis.expr.rules.cast()
, scalar_like()
and array_like()
rules have been
removedt["a"].distinct()
with t[["a"]].distinct()
.aggregate
or mutate
dt.float
is now dt.float64
; use dt.float32
for the previous behavior.execute_node
dispatch rules must now accept tuples of expressions.ibis.options.graphviz_repr = True
to enablefsspec
instead of HDFS from ibisregister_option
is no longer supported, please submit option requests upstreamExpr() -> Expr.pipe()
materialize
is removed. Joins with overlapping columns now have suffixes.ibis.asc
expression (efe177e), closes #1454
.sql
on tables for mixing sql and expressions (00e8087)force
argument in sqlalchemy backend base class (9df7f1b)apply_to
(b0f334d)fsspec
(cc6eddb)roots
and find_nodes
functions (d630a77)