- Fixed PermissionError when trying to modify a previously opened file on windows
- Changed minimum PyArrow requirement from 7.0.0 to 8.0.0
Warning: This update causes some API-breaking changes:
- Changed metadata backend, which breaks tables written in earlier versions
- Changed filtering for
cols
fromcols=['like', <pattern>]
tocols={'like': <pattern>}
- Changed filtering for
rows
fromrows=[<keyword>, <value>]
torows={<keyword>: <value>}
- Changed
store.store_name
tostore.name
- Changed
table.exists
totable.exists()
Enhancements:
- Restoring snapshots no longer overwrites existing store or tables by default
- Added
errors
parameter to adjust this behavior
- Added
- Added
table.name
- Added
is_connected()
- Added
store_exists()
- Added
database_exists()
- Added
table.partition_size
read only property - Added
table.repartition(new_partition_size)
for re-partitioning a table tonew_partition_size
- Dropping both
rows
andcols
intable.drop()
at the same time is now supported - Added support for
numpy
datatypes intable.astype()
rows
andcols
arguments now supports more sequence types than just listsbefore
,after
, andbetween
is no longer invalid index valueslike
is no longer a invalid column nametable.read(rows=[...])
now raises an exception whenrows
are not found in the table- Improved
table.insert()
performance - Made some exceptions messages clearer
Bugfixes:
connect(<Database>)
now correctly switches connection to<Database>
instead of staying connected to the old database- Fixed
append
not working properly with default index - Fixed
read_pandas
not working with binary columns - Fixed
read_pandas
not working with large string columns - Fixed
read_pandas
not working with date32 and date64 columns - Fixed a bug causing
insert
to sometimes delete a partition - Fixed
Table.shape
not working - Fixed
store.rename
not working - Fixed predicate filtering keeping one row to many in special cases
- Fixed being able to write tables with non-string column names
- Fixed performance bottleneck when making hidden files on windows
Other:
- Updated dependency requirements to:
polars[timezone]=0.14.11
pyarrow>=7.0.0
- Fixed behavior of
Table.append()
when using the default index
- Added snapshots
- Added
Table.astype()
- Added
Table.reorder_columns()
as a synonym toTable.columns = values
- Added
Store.drop()
as a synonym tostore.drop_store()
- Added option to set partition_size=-1 to disable partitioning
- Added performance comparison to docs
- Added a simple performance benchmark script to benchmark reads and writes
- Performance improvements
- Added
Table.add_columns()
- Added
Table.rename_columns()
- You can now use
Table.columns = values
to reorganize columns - Improved performance of all write operations
- Changed minimum PyArrow requirement from 4.0.0 to 5.0.0
Warning: This update causes some API-breaking changes:
store.table
renamed tostore.select_table
list_tables
andlist_store
argumentlike
now uses?
as single-character wildcard instead of_
.- Removed
read_table_metadata
andread_partition_metadata
Enhancements:
- Added
Table.update()
- Added
Table.insert()
- Added
Table.drop()
,Table.drop_rows()
andTable.drop_columns()
- Added
Table.shape
andTable.exists
- Removed msgpack dependency
- Performance improvements
- Added missing dependencies
- Updated docs
Warning: This update causes some API-breaking changes:
Table.read()
andStore.read_table()
has now been renamed toread_arrow()
- The parameter
new_name
inrename_%()
functions and methods have been changed toto
Enhancements:
- Improved
read_polars()
performance - Index column now appears first when reading data as Arrow or Polars
read_pandas()
now converts to Pandas Series where it is possible- Improved performance of all metadata handling
Initial release.