Skip to content

Nexa SQL 0.2.2

Choose a tag to compare

@github-actions github-actions released this 16 Oct 10:46

Nexa SQL 0.2.2

Lightweight cross-platform SQL client (IDE) for Oracle, SQL Server, PostgreSQL and SQLite, with the nsql CLI.
Installers only (no portable build). Changes: see docs/DEVLOG.md.

OS File Install
Windows x64 nexa-sql-0.2.2-windows-x64.msi Double-click, or msiexec /i … /qn (silent; adds nsql to PATH; .sql association optional) · winget install SosomLab.NexaSQL · choco install nexa-sql (after moderation)
macOS (Universal) nexa-sql-0.2.2-macos-universal.pkg / .dmg Installer → /Applications/Nexa SQL.app + /usr/local/bin/nsql · brew install --cask kiros33/tap/nexa-sql
Linux x86_64 .deb / .rpm sudo apt install ./…deb / sudo dnf install ./…rpm · or the signed repository at https://pkg.sosomlab.com/ (apt install nexa-sql / dnf install nexa-sql)

Verify downloads with sha256sums.txt. Builds are not code-signed yet (DR-20): macOS Gatekeeper and Windows SmartScreen will warn.
License: PolyForm Noncommercial 1.0.0 — free for noncommercial use only.

What's in this release (since 0.2.1)

Find Objects window (new · Ctrl+Alt+F · View ▸ Find Objects · toolbar button)

  • A modeless window that searches every connected server at once for object names, descriptions (comments), column names and source text (views, procedures, functions, packages, triggers). Each result row shows the server, schema, kind and what matched; the preview pane below lists the matching lines.
  • Search runs on its own worker threads (one planner per server plus findobj.workers workers), always against the live catalog, and results appear as each schema finishes. Cancel at any time; closing the window while a search is running asks for confirmation.
  • Filters: case / whole word / regex toggles, schema filter, server multi-select (checkbox combo), SQL Server all-databases switch, and a result filter box that narrows by every column (space-separated words are ANDed; object names also match fuzzily).
  • Preview: clicking a matching line opens the object source in a preview tab at that line (toggle in the pane header, setting findobj.preview_click); ↑/↓ moves through the lines; double-click or Open in editor opens a regular tab; Show in object explorer reveals the object, down to the column. Buttons are enabled only for a selected result of a suitable kind.
  • The main window now keeps repainting while a search runs: before this release the preview tab was opened but did not appear on screen until the search finished (up to a minute on large schemas).
  • Right-click menu: open source, show in explorer, generate SELECT, copy name / full name. Keyboard: Enter opens, Esc stops or closes, Tab cycles the boxes.

Production-connection safeguards

  • Held commits on production (PRD) connections: changes run inside an explicit transaction and are committed only when you press the two-step red Commit button; a COMMIT; statement in the script is refused while changes are held. While changes are held, DDL that would commit implicitly and changes from other tabs on the same connection are blocked until you commit or roll back. The toolbar shows the remaining confirmation seconds; the status bar shows "held N" even in auto-commit mode.
  • Object backup settings group: before DROP / CREATE OR REPLACE / ALTER / TRUNCATE / RENAME the current DDL is saved under backups/objects/; on production connections a failed backup blocks the statement. Keep-N and periodic cleanup; a status-bar shortcut opens the folder.
  • A ready-made production check-list script (examples/prod-mode-scenario.sql · scripts/prod-mode-scenario.sh) walks through the behaviours step by step.

Editor and completion

  • Built-in client commands (SET, SHOW, CONNECT, CONNTYPE, VAR, WHENEVER, …) and their sub-keywords are offered by the completion popup.
  • Generate SQL uses the same alias style as completion (intel.alias_style) and a new intel.alias_upper setting; SQL Preview is formatted with your default formatter.
  • Object explorer nodes can be dragged into the editor, filter boxes and the condition bar (Shift = fully qualified name); every node has Copy name.
  • Tab markers: a new or unmodified tab shows ×, a modified tab shows ●, and reverting the text brings × back immediately. Closing several unsaved tabs with Discard all asks once more, in red.

Memory window

  • A new Details switch: off (default) shows one line per group (results · editor · metadata · UI · other) plus the three key system lines; on shows every category as before. Find Objects results are now accounted in the metadata group, and closing the window releases them.

Fixes

  • Windows: .sql and .nsql-project file associations are registered by the installer again (the MSI feature was disabled by default); macOS and Linux associations checked.
  • Schema comments were dropped when they arrived before the name index (metadata comment map).
  • Object backup: unquoted lower-case names (Oracle / PostgreSQL identifier folding) are now found and backed up instead of being skipped as missing; the backup result is also written to the log window.
  • Ctrl+Alt+F on keyboards where Ctrl+Alt is AltGr falls back to the physical key.
  • Menus close when another window takes focus (ui.menus_close_on_blur); menu names no longer end with "…".
  • Find Objects text boxes (search, schema, result filter): Ctrl/⌘+C, X, V and the right-click Copy / Cut / Paste menu work.
  • Korean UI: the remaining English words in Korean labels and messages (Save, Commit/Rollback button names, View menu, Extension Manager, Format) are translated.

Testing

  • New end-to-end scripts: win-findobj-e2e.sh, win-findobj-preview-e2e.sh (click vs keyboard latency chain, screen-level repaint check), win-prod-hold-e2e.sh, win-objbackup-e2e.sh, win-objbackup-prod-e2e.sh, win-gen-alias-e2e.sh, win-explorer-dnd-e2e.sh.

Full details: docs/DEVLOG.md · docs/journal

Distribution note: this version is published to GitHub Releases, Homebrew (kiros33/tap) and the Linux repository (pkg.sosomlab.com). winget and Chocolatey are paused until the pending reviews finish.


크로스플랫폼 경량 SQL 클라이언트(IDE) + CLI nsql — 설치본만 배포합니다(포터블 없음 · DR-27).

운영체제 파일 설치
Windows x64 nexa-sql-0.2.2-windows-x64.msi 더블클릭 또는 msiexec /i … /qn(조용한 설치 · PATH 추가 옵션 · .sql 연결은 선택)
macOS (Universal · Apple Silicon/Intel) nexa-sql-0.2.2-macos-universal.pkg 설치기 실행 → /Applications/Nexa SQL.app + /usr/local/bin/nsql 링크
macOS (drag-to-Applications) nexa-sql-0.2.2-macos-universal.dmg 끌어 놓기 · CLI 링크는 dmg 안 안내문
Linux x86_64 (deb) nexa-sql_0.2.2_amd64.deb sudo dpkg -i 또는 sudo apt install ./…deb
Linux x86_64 (rpm) nexa-sql-0.2.2-1.x86_64.rpm sudo dnf install ./…rpm
macOS (Homebrew) — brew install --cask kiros33/tap/nexa-sql(공개 뒤 자동 반영 · nsql도 PATH에)
Linux (APT 저장소 · Debian/Ubuntu) — 저장소 등록 뒤 sudo apt install nexa-sql · 갱신 = apt upgrade(아래 · 공개 뒤 자동 반영)
Linux (RPM 저장소 · Fedora/RHEL 계열) — 저장소 등록 뒤 sudo dnf install nexa-sql · 갱신 = dnf upgrade(아래 · 공개 뒤 자동 반영)

Linux 패키지 저장소(pkg.sosomlab.com · 서명됨)

한 번 등록하면 새 버전을 apt upgrade/dnf upgrade로 받습니다(안내 = https://pkg.sosomlab.com/).

# APT(Debian · Ubuntu)
sudo curl -fsSLo /usr/share/keyrings/sosomlab-archive-keyring.gpg https://pkg.sosomlab.com/sosomlab-archive-keyring.gpg
sudo curl -fsSLo /etc/apt/sources.list.d/sosomlab.sources https://pkg.sosomlab.com/apt/sosomlab.sources
sudo apt update && sudo apt install nexa-sql
# RPM(Fedora · RHEL 계열)
sudo curl -fsSLo /etc/yum.repos.d/sosomlab.repo https://pkg.sosomlab.com/rpm/sosomlab.repo
sudo dnf install nexa-sql

받은 파일은 sha256sums.txt로 확인하세요. 제거: Windows 프로그램 추가/제거 · macOS sudo "/Applications/Nexa SQL.app/Contents/Resources/uninstall.sh" · Linux dpkg -r nexa-sql/dnf remove nexa-sql.
사용자 데이터(설정·연결 프로필)는 OS 사용자 폴더에 있으며 제거해도 보존됩니다.

서명

코드 서명 키가 투입되지 않은 빌드는 macOS Gatekeeper·Windows SmartScreen이 경고합니다(DR-20 · 별도 요청 시 서명).

  • macOS: xattr -dr com.apple.quarantine "/Applications/Nexa SQL.app"
  • Windows: SmartScreen "추가 정보 → 실행"

라이선스: PolyForm Noncommercial 1.0.0 — 변경 내역: docs/DEVLOG.md

이번 판에 담긴 것(0.2.1 이후)

객체 찾기 창(신규 · Ctrl+Alt+F · 보기 ▸ 객체 찾기 · 툴바 버튼)

  • 연결된 모든 서버에서 객체 이름 · 설명(코멘트) · 컬럼 이름 · 소스 본문(뷰 · 프로시저 · 함수 · 패키지 · 트리거)을 한 번에 찾는 모달리스 창입니다. 결과 행마다 서버 · 스키마 · 종류 · 일치 내용이 보이고, 아래 미리보기 칸에 일치 줄이 나열됩니다.
  • 검색은 창 전용 스레드(서버마다 계획 스레드 + findobj.workers 워커)가 늘 실제 카탈로그를 직접 조회하며, 스키마가 끝날 때마다 결과가 바로 보입니다. 언제든 중지할 수 있고, 검색 중에 창을 닫으면 한 번 더 묻습니다.
  • 거르기: 대소문자 · 낱말 · 정규식 토글, 스키마 필터, 서버 다중 선택(체크박스 콤보), SQL Server 전 데이터베이스 스위치, 모든 열을 대상으로 하는 결과 거르기 상자(띄어쓴 낱말은 AND · 객체 이름은 퍼지 일치).
  • 미리보기: 일치 줄을 클릭하면 그 객체의 소스가 그 줄에서 미리보기 탭으로 열립니다(칸 머리의 스위치 · 설정 findobj.preview_click). ↑/↓로 줄을 옮기고, 더블클릭이나 편집기에서 열기는 정식 탭, 객체 탐색기에서 보기는 컬럼까지 찾아 줍니다. 버튼은 선택된 결과의 종류에 맞을 때만 활성입니다.
  • 검색이 도는 동안에도 메인 창이 계속 그려집니다. 이전 판에서는 미리보기 탭이 열려도 검색이 끝날 때까지(큰 스키마에서 최대 1분) 화면에 나타나지 않았습니다.
  • 우클릭 메뉴: 소스 열기 · 탐색기에서 보기 · SELECT 생성 · 이름/전체 이름 복사. 키보드: Enter 열기 · Esc 중지/닫기 · Tab 상자 순환.

운영 접속 보호

  • 운영(PRD) 접속의 보류 커밋: 변경은 명시 트랜잭션 안에서 실행되고 상단의 빨간 2단 커밋 버튼을 눌러야 커밋됩니다. 보류 중에는 스크립트의 COMMIT; 문이 거부됩니다. 보류 중에는 암묵 커밋을 일으키는 DDL과 같은 연결의 다른 탭 변경을 커밋·롤백할 때까지 막습니다. 툴바에 남은 확인 초가 보이고, 자동 커밋 모드에서도 상태줄에 "보류 N건"이 보입니다.
  • 객체 백업 설정 그룹: DROP / CREATE OR REPLACE / ALTER / TRUNCATE / RENAME 전에 현재 DDL을 backups/objects/에 저장합니다. 운영 접속에서 백업이 실패하면 문장을 막습니다. N개 유지 · 주기 정리 · 상태줄 바로가기.
  • 운영기 점검 시나리오(examples/prod-mode-scenario.sql · scripts/prod-mode-scenario.sh)로 동작을 단계별로 확인할 수 있습니다.

편집기·자동 완성

  • 내장 명령(SET · SHOW · CONNECT · CONNTYPE · VAR · WHENEVER …)과 그 하위 키워드가 완성 팝업에 나옵니다.
  • Generate SQL이 완성과 같은 별칭 방식(intel.alias_style)과 새 설정 intel.alias_upper를 쓰고, SQL Preview는 기본 포맷터로 포맷됩니다.
  • 객체 탐색기 노드를 편집기 · 필터 상자 · 조건 바로 끌어 놓을 수 있습니다(Shift = 전체 이름). 모든 노드에 이름 복사가 있습니다.
  • 탭 표식: 새 탭·수정 없는 탭은 ×, 수정하면 ●, 원래대로 되돌리면 바로 ×로 돌아옵니다. 미저장 탭 여럿을 모두 취소로 닫을 때는 빨간 글로 한 번 더 묻습니다.

메모리 창

  • 새 상세 스위치: 끔(기본)은 묶음마다 한 줄(결과 · 편집기 · 메타데이터 · UI · 기타)과 시스템 핵심 3줄만, 켬은 종전처럼 전부 보입니다. 객체 찾기 결과가 메타데이터 묶음에 집계되고, 창을 닫으면 해제됩니다.

고침

  • Windows: 설치본의 .sql · .nsql-project 파일 연결이 다시 등록됩니다(MSI 기능이 기본 꺼짐이었음). macOS · Linux 연결도 점검했습니다.
  • 스키마 코멘트가 이름 색인보다 먼저 도착하면 버려지던 결함.
  • 객체 백업: 따옴표 없는 소문자 이름(Oracle · PostgreSQL 식별자 접힘)을 찾아 백업합니다(종전 = '아직 없음'으로 건너뜀). 백업 결과는 로그 창에도 남습니다.
  • Ctrl+Alt가 AltGr인 자판에서 Ctrl+Alt+F가 물리 키로 동작합니다.
  • 다른 창에 포커스가 가면 열린 메뉴가 닫힙니다(ui.menus_close_on_blur). 메뉴 이름 끝의 "…"를 없앴습니다.
  • 객체 찾기 창 입력란(검색어 · 스키마 · 결과 거르기)에서 Ctrl/⌘+C · X · V와 우클릭 메뉴의 복사 · 잘라내기 · 붙여넣기가 동작합니다.
  • 한국어 화면에 남아 있던 영어 낱말(Save · Commit/Rollback 버튼 이름 · View 메뉴 · Extension Manager · Format)을 번역했습니다.

시험

  • 새 E2E 스크립트: win-findobj-e2e.sh · win-findobj-preview-e2e.sh(클릭·키보드 반응 계측 사슬 · 화면 기준 갱신 판정) · win-prod-hold-e2e.sh · win-objbackup-e2e.sh · win-objbackup-prod-e2e.sh · win-gen-alias-e2e.sh · win-explorer-dnd-e2e.sh.