Skip to content

Latest commit

 

History

History
155 lines (99 loc) · 5.07 KB

CHANGELOG

File metadata and controls

155 lines (99 loc) · 5.07 KB

v1.2.0 2021/09/28

  • By default closql-get no longer proactively resolves all slots, which is never actually unnecessary but often extremely expensive.

v1.1.0 2021/09/27

  • Added support for alternative database connectors. The closql-database class is abstract now, making it necessary to define a class that derives from that and also from a connector class.

v1.0.6 2021/06/16

  • Adjusted to how unbound slots are represented in Emacs 28.

v1.0.5 2021/05/30

  • Cosmetics.

v1.0.4 2020/07/20

  • Added new functions closql--db-get and closql--db-set.

v1.0.3 2020/06/13

  • When any class is autoloaded, then that could still caused a recursive load.

v1.0.2 2020/05/22

  • When any class is autoloaded, then that caused a recursive load.

v1.0.1 2019/12/05

  • Adjusted to incompatibles changes to Eieio internals that broke some code that relied on implementation details.

v1.0.0 2018/10/31

  • Added optional replace argument to closql-insert. It non-nil, then this function uses INSERT OR REPLACE INTO instead of just INSERT INTO, allowing the caller to replace an existing row.
  • Added function closql-reload, which, given a potentially outdated object, returns an up-to-date object.
  • Replaced the slot property :closql-columns with :closql-table. The value has to be a table instead of a vector of columns and its name can be different from that of the slot, which previously was not possible. The slots are now determined by querying the database.
  • Added new experimental function closql--iref.

v0.6.0 2018/07/01

  • Added new closql-object class slot closql-order-by, which allows specify how the values of a related :closql-class slot are ordered.
  • An initially unbound slot for which neither :closql-class nor :closql-columns is set caused an error in closql--resolve-slots.

v0.5.2 2018/05/21

  • Fixed a bug that caused closql-insert to fail when using Emacs 25 ever since Emacs 26 is supported too.
  • Added new utility function closql-format.

v0.5.1 2017/12/19

  • A recent change on Emacs 27.0.50 causes an EmacSQL bug to surface. That was fixed upstream and the dependency was bumped to bring in that fix.

v0.5.0 2017/11/27

  • Emacs 26.1 will use a new record type instead of vectors. Closql can now deal with both internal representations.

v0.4.0 2017/09/19

  • The value of a slot can now be a list of objects. Like for a slot whose value is a list of lists, the elements have to be uniform, in this case they have to share a base-class, and they are unordered.

    Objects in such secondary tables can be queried directly, using the same functions that are used to query objects in the primary table. For secondary tables the new optional class argument of these query functions has to be provided.

    Note that oset currently does not support “list of objects” slots.

  • Access information is now stored in slots of the object base class instead of in the database class. This change was necessary to allow storing objects of different types in different tables.

    The names of all of these slots are prefixed with closql-. The existing slot database was renamed to closql-database and the slot property :columns was renamed to :closql-columns.

  • Class tags are now automatically abbreviated when being stored in the database because that gives friendlier results when querying it direct.

    It was already possible to do that before by implementing the generic functions closql--class-to-sql and closql--sql-to-class. These functions were replaced by the functions closql--abbrev-class and closql--expand-abbrev, which have different signatures and allow subclasses to strip a common prefix and/or suffix by setting the object slots closql-class-prefix and closql-class-suffix instead of having to define methods for these subclasses.

  • Added new functions closql-query. It calls either closql-entries or if its select argument is non-nil closql-select. If select is a symbol, then return a list of elements, unlike closql-select, which would return a list of lists with one element each.
  • The function closql--where-class-in isn’t merely intended for internal use anymore and was renamed to closql-where-in-class.
  • Added new internal function closql--list-subbrevs.
  • The internal function closql--oref-default was removed.
  • The function signature of closql--remake-instance changed.

v0.3.3 2016/12/31

v0.3.2 2016/11/26

  • Update links.

v0.3.1 2016/11/03

  • Fixed updating of rows in secondary tables when the key is nil.

v0.3.0 2016/10/25

  • Setting the value of a slot whose value is stored in a secondary table no longer deletes and recreates all rows.
  • closql--db-init no longer sets the primary key of secondary tables.

v0.2.0 2016/09/02

  • Text properties are now being removed when storing string in the database.

v0.1.0 2016/04/15

  • Initial public alpha release.