Skip to content

Mathesar 0.2.3

Help shape the future of Mathesar

We’re looking to speak with users to better understand how Mathesar can help you or your team. It’s only a 20 minute interview, and we’re happy to offer a $25 gift card in return.

If you’re interested in helping, you can use this link to schedule a chat with Zack on the Mathesar team. Thank you!

Summary

Mathesar 0.2.3 adds support for row duplication, enhanced paste behavior in newly saved rows, new ways to connect an internal database, and improved numeric inference.

This page provides a comprehensive list of all changes in the release.

Improvements

More options for internal database connections

Mathesar now supports connecting to internal PostgreSQL databases using any valid connection string, including configurations that:

  • Use Unix sockets instead of TCP/IP.
  • Omit the port or do not require a password.

Previously, Mathesar required both a port and password to be defined, which prevented these types of connections. This was a common pain point for users attempting to use custom Postgres installations.

Here’s an example of the docker-compose.yml configuration to connect to Postgres running on the UNIX socket:

POSTGRES_HOST="%2Fvar%2Frun%2Fpostgresql"
POSTGRES_PORT=""
POSTGRES_USER="mathesar"
POSTGRES_PASSWORD=""
POSTGRES_DB="mathesar_django"

Tip

%2F is the URL-encoded version of /, which is required when specifying a Unix socket path in a PostgreSQL connection string.

#4416

“Duplicate row” functionality

It’s now easy to duplicate rows in Mathesar using the “right click” context menu. Right click any cell in the row you would like to duplicate and choose “Duplicate Record”.

#4414

Support for pasting into cells of newly-inserted rows

You may now paste data into the cells of newly-saved rows. Previously, you needed to hit the “refresh” button or reload the page before pasting into these rows.

It is still not possible to paste into new, unsaved rows. Attempting to do so will present an error:

A screenshot of Mathesar's showing an error when pasting into an unsaved row

#4410

Improved inference for numeric columns

In this release we have greatly improved the accuracy, safety, and performance of type inference for numeric columns. This means that Mathesar is much faster and reliable at detecting the type of numeric columns.

In the future, this will enable significant front end performance improvements when switching columns to and from numeric types.

#4406

Documentation

  • Fix pencil “edit” icons to be clickable #4369

Maintenance

Removed redundant casting functions

Many of Mathesar’s existing casting functions included multiple versions that accepted different types of parameters. Where possible, we are making an effort to simplify and remove these redundant functions.

#4386 #4387 #4389 #4390 #4391 #4392 #4393 #4394 #4395 #4396 #4397 #4398 #4401 #4402 #4411

Type casting improvements

  • Extract casting logic from inference function #4385
  • Remove valid_target_types #4404
  • Make cast_to_uuid sql immutable #4403

Other maintenance

  • Add build tests to checkpoint v2 #4413
  • Bump tj-actions/changed-files from 41 to 46 in /.github/workflows #4377
  • Update Flake8 to 7.2.0, fix error in deprecated code #4383

Upgrading to 0.2.3

For installations using Docker Compose

If you have a Docker compose installation (including one from the guided script), run the command below:

docker compose -f /etc/mathesar/docker-compose.yml up --pull always -d

Your installation directory may be different

You may need to change /etc/mathesar/ in the command above if you chose to install Mathesar to a different directory.

For installations done from scratch

If you installed Mathesar from scratch, then use these steps to upgrade your installation to 0.2.3.

  1. Go to your Mathesar installation directory

    cd xMATHESAR_INSTALLATION_DIRx
    

    Note

    Your installation directory may be different from above if you used a different directory when installing Mathesar.

  2. Pull version 0.2.3 from the repository

    git pull https://github.com/mathesar-foundation/mathesar.git
    git checkout 0.2.3
    
  3. Update Python dependencies

    pip install -r requirements.txt
    
  4. Activate our virtual environment

    source ./mathesar-venv/bin/activate
    
  5. Run Django migrations

    python manage.py migrate
    
  6. Download and extract frontend assets

    wget https://github.com/mathesar-foundation/mathesar/releases/download/0.2.3/static_files.zip
    unzip static_files.zip && mv static_files mathesar/static/mathesar && rm static_files.zip
    
  7. Compile Mathesar translation files

    python manage.py compilemessages
    
  8. Update Mathesar functions on the database:

    python -m mathesar.install --skip-confirm | tee /tmp/install.py.log
    
  9. Restart the gunicorn server

    systemctl restart gunicorn