Jump to content

Kexi/Releases/Kexi 2.9.8

From KDE Community Wiki

See https://calligra.org/news/calligra-2-9-8-released/

List of changes

  • General:
    • Avoid repeated opening of the same object, possible for large data
  • Tables:
    • Table view's combo box list: ensure that highlighted row is visible
    • Table view: update the highlighted row while scrolling the viewport
  • Queries:
    • New feature: Add support for 22 typical scalar SQL functions (wish 352631): abs(X), ceiling(X), char(X1,X2,...,XN), coalesce(X,Y,...), floor(X), greatest(X,Y,...) and its alias max(X,Y,...), hex(X), ifnull(X,Y), instr(X,Y), least(X,Y,...) and its alias min(X,Y,...), length(X), lower(X), ltrim(X), ltrim(X,Y), nullif(X,Y), random(), random(X,Y), replace(X,Y,Z), round(X), round(X,Y), rtrim(X), rtrim(X,Y), soundex(X), trim(X), trim(X,Y), unicode(X), upper(X).
      • With minor exceptions these functions now work with SQLite, MySQL, PostgreSQL
      • This make Kexi unique environment supporting unified SQL
      • In many cases substitute functions are used to make the result work in a portable way
      • No extra i18n added; will be added in a KDb port
      • Implementation of the function parser supports:
        • checking number of arguments
        • checking types of arguments, sometimes "any number" or "any text or BLOB"
        • checking compatibility of arguments in function
        • checking relation of value of arguments in function, e.g. value of the first argument smaller than second's
        • checking NULL arguments in function; then most often the result is NULL
        • argument overloading or optional arguments, e.g. round(X) and round(X,Y)
        • displaying of human-readable error messages when the above constraints are not met, for example "Three arguments required" or "Function does not accept any arguments"
        • easy extensibility using just a few lines of code.
    • New feature: Add support for hex literals, useful for opearting on BLOBs in queries: X'ABCD' (SQL) and 0xABCD (ODBC) formats
    • Optimize evaluating type of expressions (also for database migration)
    • Fix broken floating-point constants in Kexi SQL queries, e.g. "1.002" was interpreted as "1.2" (bug 352363)
    • After parsing numbers are now kept losslessly as byte arrays, what enables unlimited precision
    • Improve parsing/sending BLOB literals
    • Improve performance of the SQL scanner
    • Make parsing of argument lists in scalar SQL functions more efficient by reversing direction
  • MySQL databases:
    • Set client_library_version property for newer versions of MySQL
  • PostgreSQL databases:
    • Return NULL value for columns of NULL type
    • Switch to "BYTEA HEX" escaping while generating native statements