Skip to content

Nexa SQL 0.1.7

Choose a tag to compare

@github-actions github-actions released this 09 Oct 10:27

Nexa SQL 0.1.7

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.1.7-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.1.7-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.1.6)

Results

  • Incremental result display (default): with the row limit set to 0, the first segment appears immediately and the rest is appended batch by batch while it arrives. Stop, progress and the memory budget now apply per batch (a 3-million-row fetch stops within tens of milliseconds). "Fetch all" also appends live. New settings group Result Fetch (grid.fetch_display = incremental | whole, plus the fetch-related keys).
  • Fixed: after stopping a fetch with the row limit at 0, re-running the same query returned only 200 rows — the limit was read from the Output placeholder grid instead of the target result tab.
  • Natural sort (ui.sort_natural, on by default): digit runs compare by value (ITEM2 < ITEM10, M4E_I30102 < M4E_I301010) in result-grid text columns, the object explorer, the project explorer, bookmarks, the login list and palette ties.
  • Multiple result sets are named Result 1, Result 2; dependent tabs sit right after their parent; running while the Output tab is active targets the latest result tab.

IntelliSense

  • Data types: built-in types per dialect (Oracle, SQL Server, PostgreSQL, MySQL, SQLite) in type positions — CAST(x AS, DECLARE @x, PL/SQL declarations, routine parameters, RETURN/RETURNS, CREATE/ALTER TABLE column definitions, VAR x — plus user-defined types from the server (intel.types).
  • User-defined functions and packages of the current schema are offered in expression positions without a schema prefix.
  • COLLATE keyword and collation names (SQL Server, PostgreSQL, MySQL, Oracle, SQLite); PostgreSQL $$ … $$ bodies are analyzed as PL/pgSQL; name% offers TYPE/ROWTYPE.
  • Automatic alias is no longer appended where the grammar does not allow it (ALTER TABLE, CREATE INDEX … ON, INSERT INTO, DROP/TRUNCATE, SQL Server UPDATE/DELETE targets).
  • Fixed: the data-type popup on SQL Server ALTER TABLE kept "loading objects…" and lost the selection.
  • Named arguments for user routines (@name = , name => ), object links inside DDL and system-procedure arguments, :RET OUT variables re-inferred.

Compare CREATE statement with the server object

  • Side-by-side diff viewer (editor | server DDL): line backgrounds for added/removed/changed lines, synced scroll, "next/previous change" commands, compare.view (diff | inline), compare.canon ignores EDITIONABLE/NONEDITIONABLE and quoted identifiers.

Connection health

  • Server-health propagation: a lost VPN/network marks every session and explorer of that endpoint, stops warmers and indexing, blocks Import, shows a toast whose click reconnects, and recovers automatically when the endpoint answers again (net.watch on Windows).

UI

  • Clicks act on release (toasts, banners, run cards, status bar items, Ctrl links, checkboxes, switches, pull-down items).
  • Context-menu exclusivity across areas (ui.ctxmenu_exclusive, ui.ctxmenu_passthrough); toolbar and status-bar menus open at the mouse position and toggle on a second click; toolbar server/database drop-downs and status-bar item menus toggle too.
  • Minimum heights for the editor and result areas (layout.editor_min_px, layout.result_min_px), server-type badge switch (statusbar.env_badge), a red [Run] button on the production-unlock toast, narrower space after the tab close button.
  • Second ■ = force stop (run.force_stop_secs) when the server does not honor the cancel.

Fixes

  • CLOB edits over 32 KB commit correctly on Oracle, PostgreSQL and SQL Server (verified with 40,000-character values).
  • Compare tabs no longer close themselves right after opening; the read-only view tabs (inline compare, server DDL) get their context menu back.

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 submissions remain paused for this version.


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

운영체제 파일 설치
Windows x64 nexa-sql-0.1.7-windows-x64.msi 더블클릭 또는 msiexec /i … /qn(조용한 설치 · PATH 추가 옵션 · .sql 연결은 선택)
macOS (Universal · Apple Silicon/Intel) nexa-sql-0.1.7-macos-universal.pkg 설치기 실행 → /Applications/Nexa SQL.app + /usr/local/bin/nsql 링크
macOS (drag-to-Applications) nexa-sql-0.1.7-macos-universal.dmg 끌어 놓기 · CLI 링크는 dmg 안 안내문
Linux x86_64 (deb) nexa-sql_0.1.7_amd64.deb sudo dpkg -i 또는 sudo apt install ./…deb
Linux x86_64 (rpm) nexa-sql-0.1.7-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.1.6 이후)

결과

  • 결과 점진 표시(기본): 행 수를 0으로 두고 실행하면 첫 세그먼트가 바로 보이고 나머지는 도착하는 대로 배치마다 이어 붙습니다. ■·진행률·메모리 예산이 배치 단위로 걸려 300만 행 조회도 수십 ms 안에 멈춥니다. "나머지 이어 받기"도 즉시 표시. 새 설정 분류 결과 조회(grid.fetch_display = 증분 | 전체 + 페치 관련 키).
  • 수정: 행 수 0으로 조회를 중지한 뒤 같은 조회를 다시 실행하면 200행만 오던 결함(Output 탭 자리표시 그리드의 행 수를 보냈음) — 결과가 갈 탭의 값으로.
  • 자연 정렬(ui.sort_natural · 기본 켬): 숫자 구간은 수로(ITEM2 < ITEM10 · M4E_I30102 < M4E_I301010) — 결과 그리드 글자 열 · 객체 탐색기 · 프로젝트 탐색기 · 북마크 · 로그인 목록 · 팔레트 동점.
  • 다중 결과 탭 이름 결과1, 결과2 · 딸린 탭은 부모 바로 뒤 · Output 탭을 보던 중 실행은 최근 결과 탭으로.

인텔리센스

  • 자료형: 방언별 내장 자료형(Oracle · SQL Server · PostgreSQL · MySQL · SQLite)이 자료형 자리(CAST(x AS · DECLARE @x · PL/SQL 선언부 · 루틴 파라미터 · RETURN/RETURNS · CREATE/ALTER TABLE 열 정의 · VAR x)에 + 서버의 사용자 정의 타입(intel.types).
  • 식 자리에 현재 스키마의 사용자 정의 함수·패키지가 접두 없이.
  • COLLATE 예약어와 정렬 이름(SQL Server · PostgreSQL · MySQL · Oracle · SQLite) · PostgreSQL $$ … $$ 본문은 PL/pgSQL로 분석 · 이름% 뒤 TYPE/ROWTYPE.
  • 문법이 별칭을 허용하지 않는 자리(ALTER TABLE · CREATE INDEX … ON · INSERT INTO · DROP/TRUNCATE · SQL Server UPDATE/DELETE 대상)에는 자동 별칭이 붙지 않습니다.
  • 수정: SQL Server ALTER TABLE 자료형 팝업이 "객체 불러오는 중…"에 머물며 선택이 풀리던 결함.
  • 사용자 루틴 전달인자 완성(@이름 = · 이름 => ) · DDL·시스템 프로시저 인자 안 객체 링크 · :RET OUT 변수 재추론.

CREATE 문 ↔ 실제 객체 비교

  • 나란히 보기 diff 뷰어(편집기 | 서버 DDL · 추가/삭제/변경 줄 배경 · 스크롤 동기 · 다음/이전 변경 명령 · compare.view · compare.canon = EDITIONABLE/따옴표 식별자 무시).

접속 건강

  • 서버 끊김 전파: VPN/네트워크가 끊기면 그 서버의 모든 세션·탐색기가 끊김으로 표시되고 워머·인덱싱이 멈추며 Import를 막고, 토스트 클릭으로 다시 연결 · 서버가 다시 응답하면 자동 복귀(Windows net.watch).

UI

  • 클릭은 놓을 때 동작(토스트 · 띠 · 실행 카드 · 상태줄 항목 · Ctrl 링크 · 체크박스 · 스위치 · 풀다운 항목).
  • 우클릭 메뉴 영역 간 배타(ui.ctxmenu_exclusive · ui.ctxmenu_passthrough) · 툴바·상태바 메뉴는 마우스 위치에서 열리고 다시 누르면 닫힘 · 툴바 서버/DB ▾ · 상태바 항목 메뉴도 토글.
  • 편집기/결과 최소 높이(layout.editor_min_px · layout.result_min_px) · 서버 유형 배지 스위치(statusbar.env_badge) · 운영 해제 토스트 빨간 [실행] · 탭 × 뒤 여백 축소.
  • 두 번째 ■ = 강제 중지(run.force_stop_secs).

수정

  • 32 KB를 넘는 CLOB 편집 커밋(Oracle · PostgreSQL · SQL Server · 40,000자 검증).
  • 비교 탭이 열리자마자 닫히던 회귀 · 읽기 전용 뷰 탭(inline 비교 · 서버 DDL)의 우클릭 메뉴 복구.

배포: 이 판은 GitHub Releases · Homebrew(kiros33/tap) · Linux 저장소(pkg.sosomlab.com)에 게시합니다. winget·Chocolatey 제출은 이번 판도 쉽니다.