Skip to content

Nexa SQL 0.1.9

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Oct 13:28

Nexa SQL 0.1.9

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.9-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.9-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.8)

macOS

  • Network change detection on macOS: VPN connect/disconnect and Wi-Fi changes are now noticed (SystemConfiguration), so the next action checks whether the server is still reachable before it runs (net.watch, on by default; previously Windows only).
  • Folder change watching on macOS (FSEvents): files created, renamed or deleted outside the app (Finder, git, build tools) now show up immediately in the Project Explorer tree, the Go to File (⌘P) index and the status flash (project.watch; previously Windows only, macOS fell back to a timed refresh).
  • Lower idle memory: when the main window has been idle for a moment, the macOS drawing surface pool is trimmed to the front buffer (hidden setting gfx.mac_present_trim_ms, default 1500 ms, 0 = off). Measured: about 40 MB less footprint while idle.

Fixes

  • Crash when dragging the scrollbar of a very large result (hundreds of thousands of rows): the thumb position math overflowed 32-bit integers (abort in Debug builds, wrong scroll position in Release). It now uses 64-bit intermediate values.
  • Oracle package overloads: two members with the same name (for example PRC_RUN_ALL ×2) used to show the union of both argument lists. Each member now shows its overload number (#1, #2) and only its own arguments.
  • PostgreSQL routines: the object explorer's Arguments folder was always empty for functions with arguments. It now matches the exact signature (one overload) and also lists unnamed arguments as $1, $2 …
  • Korean input: when the first jamo of a composition replaced a selection, ⌘Z / Ctrl+Z could not bring the selection back. Composition is now one undo step.

New

  • Object explorer context menus show icons (setting ui.menu_icons).
  • Copy name + Shift = Copy full name (schema.object, schema.package.member, SQL Server db.schema.object), quoted according to editor.quote_idents.
  • Package member ▸ Generate SQL ▸ Call: a call statement with named bind arguments for that member's overload. Generate SQL ▸ Call on a whole package now produces one block per overload.
  • &name substitution by dialect (decision D-272, new setting script.define = auto | on | off): Oracle keeps SQL*Plus behaviour (an undefined &name is prompted). For SQL Server, PostgreSQL, SQLite and MySQL only names defined with DEFINE or :setvar are substituted; an undefined &x is sent as-is, so 'R&D' no longer opens an input dialog. SET DEFINE ON / SET DEFINE OFF in a script still override. The CLI (run, shell, plan, query, export, import) follows the same setting.

Testing

  • New end-to-end scripts: scripts/define-e2e.sh (substitution across 4 DBMS, CLI and GUI), scripts/mac-trim-e2e.sh (idle surface trim with window captures), scripts/pkg-overload-e2e.sh (Oracle package overloads); function check scenarios S95 (large result scrollbar drag) and S96 (folder change flash).
  • Research documents used as the checklist for dialect features and completion accuracy: docs/108 (syntax and objects of each supported DBMS) and docs/109 (ANSI/ISO SQL:2016/2023).

Packaging

  • Package metadata, installer and uninstaller messages, and bundled notices are English by default (Korean is added through the localized layers only).

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

macOS

  • 네트워크 변경 감지: VPN 연결/해제 · Wi-Fi 바뀜을 알아채고(SystemConfiguration), 다음 동작 전에 서버가 살아 있는지 먼저 확인합니다(net.watch · 기본 켬 · 종전 = Windows만).
  • 폴더 변경 감시(FSEvents): 앱 밖(Finder · git · 빌드)에서 만들거나 이름을 바꾸거나 지운 파일이 프로젝트 탐색기 트리 · 파일로 이동(⌘P) 색인 · 상태 플래시에 바로 반영됩니다(project.watch · 종전 = Windows만 · macOS는 시간 간격 새로 고침).
  • 유휴 메모리 감소: 메인 창이 잠시 쉬면 macOS 그리기 표면 풀을 앞 장만 남깁니다(숨은 설정 gfx.mac_present_trim_ms · 기본 1500 ms · 0 = 끔). 실측 유휴 풋프린트 약 40 MB 감소.

수정

  • 아주 큰 결과(수십만 행)의 스크롤바를 끌면 앱이 끝나던 결함 — 썸 위치 계산이 32비트 정수를 넘쳤습니다(Debug = 종료 · Release = 엉뚱한 위치). 64비트 중간 계산으로 고쳤습니다.
  • Oracle 패키지 오버로드: 이름이 같은 두 멤버(예 PRC_RUN_ALL ×2)가 두 오버로드의 인자를 합쳐 똑같이 보이던 결함 — 멤버마다 오버로드 번호(#1 · #2)와 그 오버로드의 인자만 보입니다.
  • PostgreSQL 루틴: 객체 탐색기 Arguments 폴더가 인자 있는 함수에서도 늘 비던 결함 — 서명으로 그 오버로드 하나를 정확히 찾고, 이름 없는 인자도 $1 · $2 …로 보입니다.
  • 한글 입력: 첫 자음 조합이 선택 영역을 지운 뒤 ⌘Z/Ctrl+Z로 되돌릴 수 없던 결함 — 조합이 한 번의 되돌리기 단위가 됩니다.

새 기능

  • 객체 탐색기 우클릭 메뉴 아이콘(설정 ui.menu_icons).
  • 이름 복사 + Shift = 전체 이름 복사(스키마.객체 · 스키마.패키지.멤버 · SQL Server DB.스키마.객체 · 인용은 editor.quote_idents).
  • 패키지 멤버 ▸ Generate SQL ▸ Call = 그 오버로드의 이름 지정 바인드 호출문 · 패키지 전체 Call = 오버로드마다 블록.
  • &이름 치환의 방언별 기본(결정 D-272 · 새 설정 script.define = auto | on | off): Oracle은 SQL*Plus처럼 정의 안 된 &이름을 묻습니다. SQL Server · PostgreSQL · SQLite · MySQL은 DEFINE · :setvar로 정의한 이름만 바꾸고 정의 안 된 &x는 그대로 보내므로 'R&D'에 입력 창이 뜨지 않습니다. 스크립트의 SET DEFINE ON/OFF가 여전히 앞섭니다. CLI(run · shell · plan · query · export · import)도 같은 설정을 따릅니다.

시험

  • 새 E2E: scripts/define-e2e.sh(4개 DBMS 치환 · CLI·GUI) · scripts/mac-trim-e2e.sh(유휴 표면 해제 · 창 캡처) · scripts/pkg-overload-e2e.sh(Oracle 패키지 오버로드) · 기능 점검 S95(큰 결과 스크롤바 끌기) · S96(폴더 변경 플래시).
  • 방언 기능·자동 완성 정확도 점검표로 쓰는 조사 문서: docs/108(지원 DBMS별 문법·객체) · docs/109(ANSI/ISO SQL:2016/2023 전수).

포장

  • 패키지 메타데이터 · 설치/제거 안내 · 동봉 고지의 기본 글이 영어입니다(한국어는 지역화 층으로만 덧붙임).