Jam SQL Studio Blog

News, guides, and tips for SQL developers.

Series · Pillar May 13, 2026

JSON in Relational Databases: 5 Engines Compared (2026)

PostgreSQL, MySQL, SQL Server, Oracle, SQLite — how their JSON support actually compares for document workloads, indexing, and replacing MongoDB. The pillar reference for the 6-part series.

The 6-part series

September 30, 2026

Azure Storage “This Request Is Not Authorized”: Which Role Is Missing

Why Owner, Contributor or Reader can list containers but not read them, the error as Azure Storage Explorer, the portal, az, AzCopy and the SDKs show it, a table of ten error codes with their causes and fixes, the least-privileged data role for each Blob, Data Lake, Files, Queue and Table operation, and the causes a role does not fix: firewalls, SAS letters, disabled Shared Key and the wrong tenant.

September 30, 2026

Azurite in Docker: Run It, Connect to It and Browse It with a GUI

docker run and a docker-compose.yml for Azurite with a persistent volume, the flags that matter in a container, the devstoreaccount1 connection strings, and fixes for the API-version, connection-reset and connection-refused errors, tested on Azurite 3.36.0 and 3.37.0 — then how to browse what is inside.

September 26, 2026

Visual Query Editor: Edit SQL as Clause Cards

The statement under your cursor as FROM, SELECT, WHERE, GROUP BY, ORDER BY and LIMIT cards you can edit — add a column, a filter or a join, switch an UPDATE to another table — with every edit written straight into the SQL. In a Query tab's Visual view or a compact editor at the statement; on by default in 1.5.3, still Beta, for SQL Server, PostgreSQL, MySQL, Oracle and SQLite.

September 26, 2026

The Most Common SQL Server Errors, Ranked from App Telemetry

Incorrect syntax near (102), Invalid column name (207) and Invalid object name (208) each failed queries for 30–34% of the 359 installations that ran SQL Server queries over 60 days. This post ranks the top 17 error numbers and gives the exact message, the usual causes and a T-SQL fix for each of the top nine, from 102 to 8120. It also covers how the one-click Switch database… fix works and the top PostgreSQL, MySQL and Oracle query errors from the same data.

September 26, 2026

PRINT, RAISERROR WITH NOWAIT, RAISE NOTICE and DBMS_OUTPUT: When Each Message Reaches the Client

We timed server messages on SQL Server 2025, PostgreSQL 16 and 19, Oracle 26ai and MySQL 8.0 / 9.5 with the drivers Jam SQL Studio uses. A PRINT before a 3-second wait arrived after 3.003 s, while RAISERROR(…, 0, 1) WITH NOWAIT arrived after 0.004 s. RAISE NOTICE is sent immediately but filtered by client_min_messages. DBMS_OUTPUT can only be read after the call returns, and MySQL has no PRINT at all. The post also covers why each one goes missing and what Jam SQL Studio shows.

September 26, 2026

MySQL Error 1175: Safe Update Mode and DELETE Without WHERE

What sql_safe_updates actually checks, reproduced on MySQL 8.0.46 and 9.5.0: why WHERE 1=1 still fails while WHERE id > 0 passes and rewrites every row, what --safe-updates also sets, Workbench's default, and three fixes including a per-statement SET_VAR opt-out. Plus which engines have no such guard, and what 1,720 confirmation prompts in Jam SQL Studio show: 91% confirmed, yet half the installations cancelled at least once.

September 25, 2026

Azure Storage Support: Blobs, Data Lake (ADLS Gen2), File Shares, Queues and Tables

Jam SQL Studio 1.5.3 connects to Azure Storage accounts, SAS-scoped resources and the Azurite emulator. Blobs and share files upload and download as background jobs you can cancel, and interrupted downloads and uploads larger than one block can resume. You can edit blob properties and access tiers, generate SAS tokens, work with SMB and NFS file shares and their snapshots, create and move Data Lake directories and change their access-control lists (also recursively, as a background job), peek at queue messages without consuming them, and open Table entities in the Table Explorer grid with typed filters and ETag-checked edits. AI agents get storage_* MCP tools whose writes wait for an approval dialog that says what each write does and where.

September 1, 2026

CVE-2026-14669: The PostgreSQL to_char Bug to Patch Now

PostgreSQL's August 13 release closed 28 CVEs — its largest security batch ever — and the one to act on is a to_char heap overflow any logged-in user can turn into code execution as the postgres OS account (CVSS 8.8, public PoC). We read the patch and confirmed the user-controlled path on a live server: what the bug is, whether you're exposed, how to check your server's real version, and the fixed builds (14.24 / 15.19 / 16.15 / 17.11 / 18.6).

August 29, 2026

Show Names Instead of Foreign-Key IDs

The grid reads 3 · Pending instead of 3. Declare a lookup enum on one column, mark a reference table once for every column that points at it, or resolve names on demand for tables too big to cache — while SQL, copy, and export keep the raw key. AI agents get the same metadata over MCP and can propose declarations behind your approval, badged AI-created.

August 27, 2026

What's New in Oracle 26ai (and Where 23ai Went)

26ai isn't a new release — it's 23ai renamed via the October 2025 Release Update, with 24 and 25 skipped to match the calendar. The genuinely new part is the 23.26.x RU content: CREATE ASSERTION (first major engine to ship SQL-standard assertions), the QUALIFY clause, Select AI in every deployment, Deep Data Security, post-quantum crypto, DATEDIFF/DATEADD — versus the 23ai features every "26ai" list recycles. Plus support clocks (21c dies July 2027; 19c runs to 2029) and what a thin-mode desktop client needed to change: almost nothing.

August 27, 2026

SQL Server Connection Errors We Actually See, and How to Fix Each One

Login failed 18456 (and why the client always says State 1), pre-login handshake failures, Connection Timeout Expired vs connection refused, the semaphore timeout, and pool exhaustion — ranked causes and fixes for each, drawn from the per-engine error classifier we run across real telemetry. Plus the war story: a pool stall that spent weeks masquerading as a query timeout, and the 10-second validation deadline that fixed it.

August 27, 2026

Where Every SQL Client Stores Your Saved Connections — and How to Move Them

The exact on-disk store for SSMS, Azure Data Studio, DBeaver, VS Code, MySQL Workbench, TablePlus, ODBC DSNs, and Oracle SQL Developer — per-OS paths, formats (XML, JSONC, GRT, binary plist, registry), and how each protects passwords (DPAPI, keychains, app-bundled AES keys). Code-verified against the parsers Jam SQL Studio ships, with the manual export route and gotchas for each client.

August 25, 2026

What's New in SQL Server 2025

SQL Server 2025 (17.x) went GA on November 18, 2025, and since Microsoft's September 2026 documentation update its JSON type, JSON index, .modify() and JSON_CONTAINS are documented as GA too. Inside: the native binary JSON type, VECTOR(n) columns capped at 1998 float32 dimensions, VECTOR_DISTANCE and preview approximate search, AI models as database objects, seven REGEXP_ functions, optimized locking — plus exactly which features still need the PREVIEW_FEATURES flag, and what it took to put VECTOR in a visual table designer.

August 25, 2026

How to Import Excel into a SQL Database: 3 Ways

A free browser converter, a desktop import wizard, and each engine's native bulk loader — with when to use which. Runnable OPENROWSET, BULK INSERT, COPY/\copy, and LOAD DATA snippets, the local_infile and pg_read_server_files traps, and the Excel-side damage (leading zeros, serial dates, 15-digit rounding) that breaks imports before any SQL runs.

August 22, 2026

What's New in MySQL 26.7 — and Why There's No 9.8

MySQL 26.7.0 (July 28, 2026) is the first calendar-versioned Innovation release — YY.M.P, so 9.7 was the last sequential line. Change Stream Applier, Thread Pool in Community, post-quantum TLS options, the 9.7 LTS features you get on the way there — and what a desktop client does when a server version string suddenly starts with 26.

August 13, 2026

Schema & Data Compare: What Changed in 1.4.18

Compare depth presets with saved per-engine defaults, shareable settings files, sync scripts wrapped in a single transaction, member-level selection, Apply as INSERT in Data Compare, and ~20x faster SQL Server comparisons — plus the theme running through the release: a comparison that says what it didn’t compare instead of calling it identical.

July 11, 2026

Spatial Support: Map Geometry & Geography Across 5 SQL Engines

Jam SQL Studio now decodes and maps geometry & geography across PostgreSQL/PostGIS, MySQL, SQL Server, Oracle (SDO_GEOMETRY), and SQLite (SpatiaLite / GeoPackage) — a peek map in the grid, a Query Editor Map view, a Table Explorer map pane with bbox / distance filters, a layered Spatial Explorer, and curved-geometry rendering that keeps Copy WKT exactly curved. Basemap on by default.

July 11, 2026

SQL/PGQ in Practice: GRAPH_TABLE on Oracle and PostgreSQL

The SQL:2023 property-graph extension, hands-on: define a graph over existing tables, query it with GRAPH_TABLE, and see what Oracle 23ai+ actually accepts, live-tested with exact ORA- error codes (bounded quantifiers yes, path modes no). PostgreSQL 19 had an implementation in its early betas; Beta 4 reverted it.

July 9, 2026

Query Azure Data Explorer, App Insights & Azure Monitor From the Desktop

Kusto.Explorer is Windows-only, the ADX web UI is browser-bound, and Azure Data Studio retired Feb 28, 2026. Jam SQL Studio adds a first-class Azure Data Explorer engine on Mac, Windows & Linux — KQL with Microsoft's language service, Entra sign-in, App Insights / Azure Monitor via query proxy, enum / dynamic-JSON / loose-FK filter chips, and | render charts. Read-only by design.

July 9, 2026

PostgreSQL 19 Release Date and New Features (Beta 4)

Beta 4 shipped September 24, 2026; the release candidate is due in early October and GA is planned for October. What is still in PostgreSQL 19, what Beta 4 removed (SQL/PGQ, partition MERGE/SPLIT, FOR PORTION OF), the new system views, and where Jam SQL Studio supports each.

July 7, 2026

Oracle on Apple Silicon: Connect From an M-Series Mac With No Instant Client

Connect to Oracle from an M1/M2/M3/M4 Mac with no Oracle Instant Client and no Rosetta. Jam SQL Studio uses node-oracledb Thin mode — pure JavaScript, direct TCP, nothing to install — so the ARM64-vs-x86 client question never comes up. Plus the honest Thick-mode limit and when you still need SQL*Plus.

June 14, 2026

Convert SQL Server Stored Procedures to PostgreSQL: A Worked Example

One realistic T-SQL procedure ported to a PL/pgSQL function, line by line: @param sigils, the DECLARE section, SELECT @x = → INTO, SCOPE_IDENTITY() → RETURNING, OUTPUT params, and result sets → RETURNS TABLE. Plus the transform checklist for the rest.

June 14, 2026

Convert SQL Server Triggers to PostgreSQL: INSERTED/DELETED → NEW/OLD

The hardest object to port. T-SQL statement-level triggers see row sets via INSERTED/DELETED; PostgreSQL row triggers see one NEW/OLD via a separate function. When per-row is wrong, use statement-level transition tables — the true 1:1. Both forms verified on PostgreSQL 16.

June 14, 2026

T-SQL to PostgreSQL Function Cheat Sheet

Every common T-SQL built-in and its Postgres equivalent — ISNULL→COALESCE, GETDATE()→now(), LEN→length, CHARINDEX→position, DATEADD→INTERVAL, NEWID()→gen_random_uuid() — plus the five that bite hardest because they don't error. Checked against PostgreSQL 16.

June 14, 2026

Migrate MySQL to PostgreSQL — Tables, Types & Data

Move MySQL or MariaDB tables to PostgreSQL: schema and data, with tinyint(1)→boolean, datetime→timestamp, AUTO_INCREMENT→IDENTITY, and the unsigned / ENUM gotchas spelled out.

June 14, 2026

Migrate Oracle to PostgreSQL — Tables, Types & Data

Move Oracle tables to PostgreSQL: schema and data, with VARCHAR2→varchar, NUMBER→numeric/int, the time-carrying DATE→timestamp, and CLOB→text.

June 14, 2026

Migrate SQL Server to MySQL — Tables, Types & Data

Move SQL Server tables to MySQL: schema and data, with bit→tinyint(1), uniqueidentifier→char(36), datetime2→datetime, and IDENTITY→AUTO_INCREMENT.

June 13, 2026

How to Migrate SQL Server to PostgreSQL — Tables and Data, Right From the Object Explorer

Skip the conversion project. Right-click a SQL Server table, point it at a Postgres connection, preview the translated CREATE TABLE, and copy schema + data — types, identity, defaults, CHECK, foreign keys, and indexes — with value coercion (bit→boolean, nvarchar(max)→text, datetime2→timestamp). Row counts verified, every manual follow-up flagged.

June 13, 2026

SQL Server ↔ PostgreSQL Data Type Mapping: The Complete Reference (Both Directions)

Every MSSQL↔Postgres type conversion, both ways, including the traps: SQL Server timestamp is rowversion (→bytea), Postgres bit isn't a boolean, Postgres char types return as N-types, tinyint widens, money loses its spelling. Exactly what the tool emits.

May 24, 2026

Click Through a Database: Foreign Key Navigation

Foreign-key clicks no longer spray new tabs. A clickable breadcrumb tree, a Single-Row Details View, and loose foreign keys as first-class hops — all in one Table Explorer tab. Cmd-click still opens a new tab for users who prefer the old behaviour.

May 23, 2026

Database Blueprint: a Git-versioned folder of .sql files in sync with your database

Materialize a SQL Server, PostgreSQL, MySQL, Oracle, or SQLite database as a folder of .sql files kept in two-way sync with one or more linked environments. Preview every change, run a three-way merge against a baseline, apply table / view / procedure / function / schema edits via Schema Compare, and use the built-in Git panel to commit, branch, pull, push, and resolve merge conflicts — all without leaving Jam. Table DDL edits in Tables/*.sql round-trip back to the database (SQLite tables cover add / drop column only). And it's not just schema — capture table rows into a tracked Data/ folder and push them back with Sync data folder → DB.

May 20, 2026

Filter JSON Columns Across 5 SQL Engines: A Hands-On Tour

JSONPath sub-operators, peek popovers for path discovery, validity-guarded text-as-JSON declarations, loose foreign keys and enums on JSON paths — what JSON support in a SQL client should feel like, uniformly on PostgreSQL, MySQL, SQL Server, Oracle, and SQLite.

May 20, 2026

Polymorphic Foreign Keys in SQL: Source-Filter Scoping for Rails / Django / Laravel

Model commentable_id / commentable_type-style polymorphic associations and soft-delete-aware references without a real FK — source and target filters on loose foreign keys, with a live peek pane and an overlap-detector that catches the "forgot the discriminator" case.

May 15, 2026

Enum Columns: A Dropdown Filter for the status / kind / role Columns Your Schema Forgot to Document

Declare any column as an enum — the filter chip becomes a dropdown sourced from MySQL ENUM / Postgres pg_enum, column-level CHECK constraints, or a sampled SELECT DISTINCT. Capped at 200 values, 100k rows, 5s. Works on all six supported engines.

May 14, 2026

How to Migrate from MongoDB to PostgreSQL, MySQL, SQL Server, Oracle, or SQLite

The 7 migration steps, BSON type mapping for five engines, a mongoexport-to-Postgres worked example, and the checks that prove the data matches.

May 14, 2026

MongoDB Alternatives in 2026: Postgres, MySQL, Oracle, SQL Server, SQLite, and More

Ranked MongoDB alternatives for 2026 — relational JSON engines, FerretDB, AWS DocumentDB, ScyllaDB — with a comparison matrix and a "how to choose" decision narrative.

May 12, 2026

Oracle JSON Support: From 12c to the Native 21c JSON Type

Oracle's JSON story spans a decade — JSON_VALUE, JSON_TABLE, the IS JSON constraint, the native JSON type in 21c, and a MongoDB-compatible API in 23ai. The full guide.

May 6, 2026

SQLite JSON: How json1 Turns SQLite into a Document Store

SQLite ships with the json1 extension on by default. How to store, query, and index JSON in SQLite — and why for embedded apps, it can replace MongoDB entirely.

May 5, 2026

Loose Foreign Keys: Navigate Schemas the Database Doesn't Describe

A logical column-to-column reference the database doesn't enforce — an idea borrowed from NoSQL. When to use one, when not to, how DBeaver / DataGrip / SSMS handle it, and how Jam SQL Studio supports them — including Postgres array columns.

April 28, 2026

SQL Server JSON Support: From OPENJSON to the Native JSON Type

SQL Server stored JSON in NVARCHAR(MAX) for years. SQL Server 2022 added a native JSON type. How to query, validate, and index JSON in SQL Server — and how it stacks up against MongoDB.

April 21, 2026

MySQL JSON Columns: A Practical Guide for SQL Developers

MySQL added a native JSON type in 5.7 and refined it in 8.0 with JSON_TABLE, JSON_VALUE, and multi-valued indexes. How to store, query, and index JSON in MySQL — and when MongoDB still wins.

April 14, 2026

PostgreSQL JSON and JSONB: The Complete Guide for SQL Developers

PostgreSQL has the most mature JSON support of any relational database. The difference between json and jsonb, GIN indexes, the SQL/JSON path language — and whether you still need MongoDB.

April 6, 2026

SQL Editor IntelliSense Beyond Autocomplete

Most SQL editors stop at table/column autocomplete. Here's what modern SQL IntelliSense looks like: function parameter hints, column inlay hints, and inline result previews.

April 6, 2026

10 Query Editor Features for Faster SQL Development

Column profiling, FK navigation, pin results, copy as INSERT, client-side filtering, and more. 10 query editor features that speed up daily SQL work.

April 6, 2026

How to Prevent Running Queries on the Wrong Database

Color-coded connections and destructive query confirmation help you avoid running DROP TABLE on production. Here's how to set up visual guardrails in your SQL editor.

March 20, 2026

Manage SQL Server Agent Jobs with T-SQL from Mac or Linux

The msdb queries and procedures to list jobs, read history, and start, stop, or create jobs from any client — plus what Agent can't do on SQL Server on Linux.

March 19, 2026

PL/SQL Debugging on Mac and Linux: The Gap Nobody Filled (Until Now)

For 8+ years, no cross-platform tool shipped a real PL/SQL step-through debugger. DBeaver couldn't do it. SQL Developer was too slow. Toad was Windows-only. Here's how Jam SQL Studio closes the gap.

March 19, 2026

AI Skills for SQL Databases: Let Claude Code, Codex, and Cursor Query Your Data

Teach AI coding agents to query SQL Server, PostgreSQL, MySQL, Oracle, and SQLite with a single skill file. Works with Claude Code, Codex CLI, Cursor, Copilot, and more.

March 13, 2026

SSMS for Mac: What Works on Apple Silicon in 2026

There is no SSMS download for Mac. What works instead — SSMS in a Windows 11 VM, the VS Code MSSQL extension, or a native Mac SQL Server client — with costs, and a full SQL Server task done on macOS.

March 12, 2026

Oracle Database on Mac and Linux: No Oracle Client Required

Connect to Oracle Database from Mac, Linux, or Windows without installing Oracle Client. Learn how Thin mode simplifies Oracle development across platforms.

March 7, 2026

Why Your SQL IDE Should Have a Built-in MCP Server

AI coding assistants are everywhere, but they're blind to your database. A built-in MCP server changes that — here's why native beats bolt-on.

March 7, 2026

How to Run SQL Server on macOS

Running SQL Server on an Apple Silicon Mac after Azure SQL Edge’s retirement: the SQL Server 2025 Linux container in Docker with Rosetta, what Microsoft actually supports, SSMS in a Windows 11 on Arm VM, and a native Mac client to connect with.

February 17, 2026

Connect AI Agents to Your Database with MCP

AI coding assistants can write SQL, but they can't see your schema. Learn how to connect Claude, Codex, and other AI agents to your SQL database using Model Context Protocol.

February 17, 2026

How to Read SQL Execution Plans (Visual Guide)

Learn to read SQL execution plans step by step. Identify table scans, missing indexes, and common performance problems with this visual guide.

February 17, 2026

SQL Notebooks: Run, Document, and Share SQL

Learn how SQL Notebooks help you document workflows, build runbooks, and share analysis. A practical guide with examples for data analysts and SQL developers.

February 12, 2026

Polyglot Notebooks Are Being Deprecated — What Now?

Polyglot Notebooks, part of the Azure Data Studio ecosystem, are being deprecated alongside ADS. Here's what you lose and what alternatives exist.

February 12, 2026

SQLite Is More Powerful Than You Think

When you don't need a client-server database, SQLite might surprise you with its performance, reliability, and simplicity.

Download Jam SQL Studio

Connect to SQL Server, PostgreSQL, MySQL, Oracle, and SQLite. Free for personal use.