Repository navigation
Nexa SQL 0.1.7
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 TABLEcolumn 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.
COLLATEkeyword and collation names (SQL Server, PostgreSQL, MySQL, Oracle, SQLite); PostgreSQL$$ … $$bodies are analyzed as PL/pgSQL;name%offersTYPE/ROWTYPE.- Automatic alias is no longer appended where the grammar does not allow it (
ALTER TABLE,CREATE INDEX … ON,INSERT INTO,DROP/TRUNCATE, SQL ServerUPDATE/DELETEtargets). - Fixed: the data-type popup on SQL Server
ALTER TABLEkept "loading objects…" and lost the selection. - Named arguments for user routines (
@name =,name =>), object links inside DDL and system-procedure arguments,:RETOUT 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.canonignoresEDITIONABLE/NONEDITIONABLEand 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.watchon 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 ServerUPDATE/DELETE대상)에는 자동 별칭이 붙지 않습니다. - 수정: SQL Server
ALTER TABLE자료형 팝업이 "객체 불러오는 중…"에 머물며 선택이 풀리던 결함. - 사용자 루틴 전달인자 완성(
@이름 =·이름 =>) · DDL·시스템 프로시저 인자 안 객체 링크 ·:RETOUT 변수 재추론.
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 제출은 이번 판도 쉽니다.