Skip to content

Releases: overextended/oxmysql

v2.12.0

27 Oct 00:54
Compare
Choose a tag to compare
  • External logger services can now be loaded with set mysql_logger_service '@resource/path.js'.
  • Added support for mysql_option(s) in resource metadata (fxmanifest).
  • Added mysql_option 'return_callback_errors', allowing error handling in your callbacks.
MySQL.scalar('SELECT datefOfBirth FROM characters LIMIT 1', function(res, err)
    if err then error(err) end

    print('scalar', res)
end)
  • Added MySQL.startTransaction to library.
local success = MySQL.startTransaction(function(query)
    local a = query('INSERT INTO users (identifier) VALUES (?)', { 'someid' })

    -- if a is undefined, return false and rollback
    if not a then
        return false
    end

    -- errors in a query (e.g. syntax) will result in a rollback
    local b = query('SELEC * FROM users WHERE id = ? LIMIT 1', { a.insertId })

    -- transactions timeout after 30s to prevent connections being locked
    Wait(30000)

    -- throwing an error during a transaction will rollback
    if not b then
        error('sad')
    end

    -- no return, or any truthy value, will commit the transaction and release the connection
end)

print(success)

Features

  • lib/lua: add options and 'return_callback_errors' (Linden)
  • add startTransaction to library (Linden)
  • logger: support loading external loggers (Linden)

Bug Fixes

  • logger: catch errors when triggering error callback (Linden)
  • lib: assert query value when using query store (Linden)
  • revert citizenfx/server dependency update (Linden)
  • update types/node (Linden)
  • web: update and resolve conflicting dependencies (Linden)
  • utils/parseArguments: resolve null parameters in sparse arrays (Linden)
  • db/pool: set pool after confirming a connection (Linden)
  • db/pool: don't manually fetch connection (Linden)

Code Refactoring

  • database/pool: link to issues when connection fails (Linden)

Chores

Commits

  • bfe660b: v2.11.2 (GitHub Actions)

v2.11.2

09 Aug 05:33
Compare
Choose a tag to compare

Bug Fixes

  • utils/parseResponse: use nullish coalescing operator (Linden)

Commits

  • 22be4b1: v2.11.1 (GitHub Actions)

v2.11.1

09 Aug 04:34
Compare
Choose a tag to compare

Bug Fixes

  • build: typo in fxmanifest creation (Linden)

Commits

  • f8f3906: v2.11.0 (GitHub Actions)

v2.11.0

09 Aug 04:02
Compare
Choose a tag to compare

Features

  • logger: add fivemanage logging service #232 (Linden)
  • utils/typeCast: support date typecasting for binary protocol #232 (Linden)

Bug Fixes

  • update: catch error on failed fetch (Linden)
  • database/connection: return promise from commit method #232 (Linden)
  • database/connection: disable typecasting for execute method #232 (Linden)
  • utils/typeCast: correctly parse null date fields #232 (Linden)
  • patches/mysql: missing charset patch #232 (Linden)
  • config: allow database to be undefined in uri #232 (Linden)

Code Refactoring

  • database: add new connection class and misc tweaks #232 (Linden)
  • profiler: move from logger module #232 (Linden)
  • database/pool: warn if using multipleStatements #232 (Linden)
  • logger: dynamically load logger service (Linden)

Chores

Commits

  • 5440e03: v2.10.1 (GitHub Actions)
  • 318b4c1: Revert "chore: update build target to nodejs 20" (Linden) #232

v2.10.1

09 May 02:05
Compare
Choose a tag to compare

Bug Fixes

  • update: incorrect regex patterns (Linden)
  • ci/release: update pnpm (Linden)
  • ci/release: update node (Linden)

Code Refactoring

  • db/connection: additional info for auth_gssapi_client error (Linden)

Chores

  • dependencies: set target versions (Linden)

Commits

  • 40faa5e: v2.10.0 (GitHub Actions)

v2.10.0

08 May 18:23
Compare
Choose a tag to compare

Features

  • query search for debug ui (Luke)
  • utils/validateResultSet: add warning for oversized result sets (Linden)

Bug Fixes

  • web: resolve dead font cdn link (Luke)

Commits

v2.9.1

06 Mar 03:00
Compare
Choose a tag to compare

(Experimental) New transaction usage

This function is not yet fully supported and will receive breaking changes in future updates - this export and information is provided only for feedback and testing purposes.

Sample usage of the new transaction export.

CreateThread(function()
    local success = exports.oxmysql:experimentalTransaction(function(query)
        local a = query('INSERT INTO users (identifier) VALUES (?)', { 'someid' })
        
        if not a then return false end -- if a is undefined, return false and rollback
        
        -- local b = query('SELEC * FROM users WHERE id = ? LIMIT 1', { a.insertId }) -- syntax error leads to rollback

        -- Wait(30000) -- connection will timeout and rollback transaction

        -- error('sad') -- any errors will rollback

        -- no return, or any truthy value, will commit the transaction and release the connection
    end)

    print(success)
end)

Bug Fixes

  • db: incorrect error handling when no callback is defined (Linden)

Code Refactoring

  • db/startTransaction: remove execute from cb (Linden)
  • db/startTransaction: add 30s timeout to transactions (Linden)
  • db/startTransaction: include query and values in errors (Linden)

Commits

v2.9.0

29 Feb 22:20
Compare
Choose a tag to compare

Features

  • db: experimental transaction export (Linden)

Bug Fixes

  • logger: strip lua scheduler errors (Linden)
  • logger: potential error on error handling (Linden)

Code Refactoring

  • db/connection: set and get active connections (Linden)
  • db/startTransaction: use internal query functions (Linden)

Continuous Integration

  • release: update checkout action (Linden)
  • release: push updates to repo (Linden)
  • release: set repo ref to main (Linden)

Commits

  • 0ede55d: Create FUNDING.yml (Linden)

v2.8.0

02 Feb 06:04
Compare
Choose a tag to compare

Features

  • provide additional compatibility exports (Linden)
  • logger: add logStorage size limit (Linden)

Code Refactoring

  • logger: handle error event in error logger (Linden)
  • logger: non-debug query profiling (Linden)
  • update esbuild and build process (Linden)

Continuous Integration

  • release: update commit action (Linden)
  • release: correct commit message (Linden)

v2.7.7

04 Dec 23:30
Compare
Choose a tag to compare

Bug Fixes

  • db/connection: don't establish connection from getPoolConnection (Linden)

Code Refactoring

  • db/connection: tweak waitForConnection logic (Linden)
  • db: loop createConnectionPool until success (Linden)