==================================================
Changes from 2025-05-05 00:00:00 +0000 to present.
==================================================

-----------------------------------------
version 0.37 at 2026-05-05 08:00:51 +0000
-----------------------------------------

  Change: da21afa3f22692873c597c9068e6469c275366cb
  Author: Diab Jerius <djerius@cfa.harvard.edu>
  Date : 2026-05-04 23:11:39 +0000

    backcompat: ensure that default select expression is created prior to
    calls to select_also()

    A previous edit changed the initial state of the select expression
    list from a default value to undef.

    In general, the code assumes that unless otherwise added to by the
    caller, an undef list indicates that the default select expression
    should be inserted.

    However, select_also() assumes than an undef list means something
    else, and rather than creating a list with the default expression and
    then adding to it, it creates a list with just its contents.

    Later on, after the call to select_also() the code which would have
    inserted the default expression interprets the non-undef value for
    the list as indication that the user has explicitly called select(),
    and thus doesn't add the default.

    The end result is that calling select_also() without calling select()
    ends up with a final select expression without the default
    expression, which breaks with previous behavior.

    The change in the value for the default expression came about during
    the addition of the table_alias attribute.

    Prior to that the expression was initialized in the constructor to
    'me.*'.

    With the addition of the table_alias attribute, this is now
    [$self->{table_alias} . '.*'], and that is how it is set in later
    parts of the code which treat an undef select expression as
    equivalent to setting the default expression.

    The initialization in the constructor was previsouly done prior to
    incorporating constructor arguments; presumably its removal was made
    under the assumption that later code would catch the undef list and
    insert the proper default expression using $self->{table_alias}.

    This commit changes the assumptions of select_also() when faced with
    an undef expression list to match that of the rest of the code. All
    code which access $self->{select} now performs the same operation
    when presented an undef expression list.

    This also resolves similar behavior that arises by calling select()
    without arguments, which sets the list to undef. A subsequent call to
    select_also() would cause the same issue as is fixed here. 

  Change: 5d6a5c4f26ba8591ed3c059def8415f6458d0374
  Author: Diab Jerius <djerius@cfa.harvard.edu>
  Date : 2026-05-04 23:10:28 +0000

    bugfix: check for acceptable input in with() did not recognize refs
    to arrayrefs 

  Change: ab4b316ad48d8a8402637d01ede0547b703548ba
  Author: Diab Jerius <djerius@cfa.harvard.edu>
  Date : 2026-05-04 23:10:09 +0000

    add support for UPSERT on versions of PostgreSQL and SQLite which
    support it 

  Change: 42ff6b40eca2b60e9e8e83ef04d1d0a50390dbf4
  Author: Diab Jerius <djerius@cfa.harvard.edu>
  Date : 2026-05-04 23:09:38 +0000

    _autopk: add support for table schema for PostgreSQL 

  Change: 5228110bfb51dae8c0e1ac0c1f0d15b45ae990b5
  Author: Diab Jerius <djerius@cfa.harvard.edu>
  Date : 2026-05-04 23:09:08 +0000

    bugfix: table alias failed for update & delete if SQLA's quote_char
    was set.

    Prior to version 1.44 of SQL::Abstract::More, specifying a table
    alias as "$table_name|$table_alias" was supported only for select,
    not for delete or update.

    DBIx::Lite worked around this by calling SQLA::M's table_alias
    method, which returns a string of

    "$table_name as $table_alias"

    If SQLA's quote_char option is set, this entire construct is quoted,
    rather than just $table_name, leading to illegal SQL.

    This commit will use the "$name|$alias" form if SQLA::M is version
    1.44 or higher. 

  Change: 1bf2cd1459fcffb29401c27804a3907d24049d48
  Author: Diab Jerius <djerius@cfa.harvard.edu>
  Date : 2026-05-04 23:08:27 +0000

    Sybase is not fond of using "count" as an identifier, so make it
    unique 

  Change: 1750abfad485b3925f4b92a15fd55cb89abb8944
  Author: Diab Jerius <djerius@cfa.harvard.edu>
  Date : 2026-05-04 23:08:27 +0000

    create a column alias for COUNT(*) so that optional
    SQL::Abstract::More column quoting works

    The existing code passes the expression COUNT(*) to
    SQL::Abstract::More, which intepreted it as a column name and if its
    quote_char option was set, quoted it, leading to errors such as

    DBD::Pg::st execute failed: ERROR: column "COUNT(*)" does not exist
    LINE 1: SELECT "COUNT(*)" FROM "temp0002" AS "me"

    ^ [for Statement "SELECT "COUNT(*)" FROM "temp0002" AS "me""]

    This commit creates a column alias for COUNT(*), providing something
    appropriate for SQL::Abstract::More to quote. 

  Change: 1021974da7a20ae9acca519b8e3f1ad3695a458f
  Author: Alessandro Ranellucci <alessandro@pintle.it>
  Date : 2025-07-17 17:20:40 +0000

    Fixed warning about operator precedence 

  Change: e5bddafc1ca80843e19e3e5689ec67b091775489
  Author: Alessandro Ranellucci <alessandro@pintle.it>
  Date : 2024-10-31 18:09:57 +0000

    Add test for default functionality 

=================================================
Plus 27 releases after 2025-05-05 00:00:00 +0000.
=================================================
