Skip to content

Nexa SQL 0.7.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 04:16

Nexa SQL 0.7.0

Minor release (34 commits since 0.6.0). Highlights:

  • Compare & local history — compare two editor buffers (edit.compare_with: active tab + a list; several compare tabs kept), F7 / Shift+F7 jump between differences; a git change strip in the editor gutter (editor.git_gutter, Alt+F7 to the next hunk); a local history of saved files under the app data folder (history.*), opened as a diff tab with edit.history.
  • Object source snapshots — object source tabs (procedures, packages, views…) keep snapshots when opened and right before each compile (F5); edit.history compares a snapshot with the tab, and the new Restore from Local History… puts a snapshot back into the editor tab (nothing is sent to the server until you run it).
  • Declaration differences in Compare with Database Object — comparing a CREATE statement with the server object now also summarizes declaration changes: table columns (added, removed, type or NULL changes, order) and procedure/function arguments (direction, type) and return type, shown on the compare header and as lines in the Output tab ("declarations: not comparable" when a side cannot be read; the line diff is unchanged).
  • Safer grid editing — a UNIQUE key is used to identify rows only when all of its columns are NOT NULL; before applying, new or changed key values are checked on the server in one round trip and nothing is written if a value already exists (grid.edit_key_check; a key swap A↔B must be applied in two steps); header badges show how rows are identified (KEY · RID · ALL, grid.col_key_icons).
  • Window transparency — the main window can be slightly transparent, more when it is in the background (window.transparency, window.transparency_blur, window.dialog_keeps_active, window.blur_grace_ms; Windows · macOS · X11).
  • Dialect fixes — server SHOW passes through on PostgreSQL, DuckDB and ClickHouse; overload selection by required argument count (Oracle DEFAULTED, PostgreSQL defaults); PostgreSQL SET [SESSION|LOCAL] search_path / SET SCHEMA tracked for the session; MySQL 8.0.19+ MERGE row alias; opening the source of a PostgreSQL function without a signature lists all overloads, SETOF functions open, and signatures with named arguments resolve.
  • Driver fixes (drivers-v0.1.11) — SQL Server: geography / geometry / hierarchyid (UDT) and sql_variant columns read without errors, import into tables with UDT columns no longer panics, bulk insert rejects unsupported columns up front; Db2: zoned NUMERIC and locator values decode, unsupported bind types fall back to VARCHAR.
  • Fixes — ClickHouse result grids are read-only (no row edits); nsql import --create drops the table it created when nothing was imported; imports that hit an error and choose Skip or Stop now also re-apply the uncommitted earlier batch (rows were silently lost before), and the batch count includes re-run statements; toasts with buttons stay 15 s (ui.toast_button_secs); the details panel opens object sources in the right tab.

Behaviour changes (each can be turned off in Settings):

  • Window transparency is on by default — window.transparency (default 5 %, focused) and window.transparency_blur (default 10 %, inactive) make the main window slightly transparent. Set both to 0 for the previous opaque window; Performance boost mode turns it off.
  • grid.refetch_confirm now defaults to off — re-fetching a result no longer asks first; when rows are replaced a warning toast appears once per run (grid.refetch_warn, default on). Set grid.refetch_confirm to on for the previous prompt.
  • history.enabled (default on) — saved files and opened/compiled object sources are kept as snapshots in the app data folder history/ (up to history.max_per_item 50 per item and history.max_mb 200 MB).
  • grid.edit_key_check (default on) — applying grid edits that change or add key values makes one extra query to check for existing keys.

Drivers: drivers-v0.1.11 (SQL Server UDT/sql_variant reading via a patched tiberius 0.12.3, Db2 decoding fixes; the app installs it on the next connection when driver.auto_install is on).

마이너 릴리스(0.6.0 이후 커밋 34). 주요 변경:

  • 비교·로컬 히스토리 — 편집기 두 버퍼 비교(edit.compare_with · 활성 탭 + 목록 · 비교 탭 여럿 보관) · F7 / Shift+F7 = 차이 이동 · 편집기 거터의 git 변경 띠(editor.git_gutter · Alt+F7 = 다음 묶음) · 저장한 파일의 로컬 히스토리(앱 데이터 폴더 · history.*) · edit.history = diff 탭으로 열기.
  • 오브젝트 소스 시점 — 오브젝트 소스 탭(프로시저 · 패키지 · 뷰 …)이 열 때와 컴파일(F5) 직전마다 시점을 남김 · edit.history = 시점 ↔ 탭 비교 · 새 로컬 히스토리에서 복원… = 시점 본문을 편집기 탭으로(실행하기 전에는 서버에 아무것도 보내지 않음).
  • 실제 객체와 비교에 선언 차이 — CREATE 문을 서버 객체와 비교하면 선언 차이도 요약: 테이블 열(추가 · 삭제 · 타입/NULL 변경 · 순서) · 프로시저/함수 인자(방향 · 타입)와 반환 타입 · 비교 머리 줄과 Output 탭 줄로 표시(한쪽을 못 읽으면 "선언 비교 불가" · 줄 diff는 그대로).
  • 더 안전한 그리드 편집 — UNIQUE 키는 열 전부 NOT NULL일 때만 행 식별에 씀 · 적용 전 바꾸거나 추가한 키 값을 서버에서 한 번에 확인해 이미 있으면 아무것도 쓰지 않음(grid.edit_key_check · 키 맞교환 A↔B는 두 번에 나눠 적용) · 행 식별 방식 머리 배지(KEY · RID · ALL · grid.col_key_icons).
  • 창 투명도 — 메인 창을 살짝 투명하게, 뒤로 가면 조금 더(window.transparency · window.transparency_blur · window.dialog_keeps_active · window.blur_grace_ms · Windows · macOS · X11).
  • 방언 수정 — PostgreSQL · DuckDB · ClickHouse 서버 SHOW 통과 · 필수 인자 수로 오버로드 고르기(Oracle DEFAULTED · PostgreSQL 기본값) · PostgreSQL SET [SESSION|LOCAL] search_path / SET SCHEMA를 세션에 반영 · MySQL 8.0.19+ MERGE 행 별칭 · 서명 없는 PostgreSQL 함수 소스 = 오버로드 전부 · SETOF 함수 소스 열기 · 이름 있는 인자 서명 해석.
  • 드라이버 수정(drivers-v0.1.11) — SQL Server: geography / geometry / hierarchyid(UDT) · sql_variant 열 오류 없이 읽기 · UDT 열이 있는 표로 가져오기 패닉 해소 · bulk 삽입이 지원 안 되는 열을 미리 거절 · Db2: zoned NUMERIC · 로케이터 값 디코드 · 지원 안 되는 바인드 형 → VARCHAR 폴백.
  • 결함 수정 — ClickHouse 결과 그리드 = 읽기 전용(행 편집 막음) · nsql import --create가 아무것도 못 가져오면 만든 표를 DROP · 가져오기 중 오류에서 Skip/Stop을 고르면 커밋 안 된 앞 배치도 다시 적용(종전 = 조용히 누락) · 배치 수에 재실행 문장 포함 · 버튼 있는 토스트 15초 유지(ui.toast_button_secs) · 상세 패널에서 연 오브젝트 소스가 제 탭으로.

동작이 바뀌는 기본값(각각 설정에서 끌 수 있음):

  • 창 투명도 기본 켜짐 — window.transparency(기본 5 % · 포커스) · window.transparency_blur(기본 10 % · 비활성)로 메인 창이 살짝 투명 · 둘 다 0이면 종전처럼 불투명 · 성능 향상 모드는 끔.
  • grid.refetch_confirm 기본 off로 바뀜 — 결과 다시 받기가 묻지 않고 바로 진행 · 행이 교체되면 실행당 한 번 경고 토스트(grid.refetch_warn 기본 on) · 종전처럼 물으려면 grid.refetch_confirm = on.
  • history.enabled(기본 on) — 저장한 파일과 열거나 컴파일한 오브젝트 소스를 앱 데이터 폴더 history/에 시점으로 보관(항목당 history.max_per_item 50개 · 전체 history.max_mb 200 MB까지).
  • grid.edit_key_check(기본 on) — 키 값을 바꾸거나 추가하는 그리드 편집 적용 때 기존 키 확인 조회 1회가 더 나감.

드라이버: drivers-v0.1.11(SQL Server UDT/sql_variant 읽기 = tiberius 0.12.3 패치 사본 · Db2 디코드 수정 · driver.auto_install이 켜져 있으면 다음 접속 때 자동 설치).

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

OS File Install
Windows x64 nexa-sql-0.7.0-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 (only when this release was pushed to those channels)
macOS (Universal) nexa-sql-0.7.0-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)

Drivers are not bundled (only the Oracle OCI driver, which needs an Instant Client): the first connection to PostgreSQL, MySQL/MariaDB, SQL Server, SQLite, DuckDB, Oracle Thin, IBM Db2, ClickHouse or ODBC downloads the signed driver package from the drivers-v* pre-release (currently drivers-v0.1.11) and installs it (driver.auto_install). Offline: nsql driver install --file nsql-drivers-all-<ver>-<os>-<arch>.zip. Driver packages are built for Windows x64, Linux x86_64, Apple Silicon and Intel macOS (ODBC included on all four).
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.


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

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