Repository navigation
Nexa SQL 0.7.0
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 withedit.history. - Object source snapshots — object source tabs (procedures, packages, views…) keep snapshots when opened and right before each compile (F5);
edit.historycompares 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
CREATEstatement 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
SHOWpasses through on PostgreSQL, DuckDB and ClickHouse; overload selection by required argument count (OracleDEFAULTED, PostgreSQL defaults); PostgreSQLSET [SESSION|LOCAL] search_path/SET SCHEMAtracked for the session; MySQL 8.0.19+MERGErow alias; opening the source of a PostgreSQL function without a signature lists all overloads,SETOFfunctions open, and signatures with named arguments resolve. - Driver fixes (drivers-v0.1.11) — SQL Server:
geography/geometry/hierarchyid(UDT) andsql_variantcolumns read without errors, import into tables with UDT columns no longer panics, bulk insert rejects unsupported columns up front; Db2: zonedNUMERICand locator values decode, unsupported bind types fall back toVARCHAR. - Fixes — ClickHouse result grids are read-only (no row edits);
nsql import --createdrops 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(default5%, focused) andwindow.transparency_blur(default10%, inactive) make the main window slightly transparent. Set both to0for the previous opaque window; Performance boost mode turns it off. grid.refetch_confirmnow defaults tooff— re-fetching a result no longer asks first; when rows are replaced a warning toast appears once per run (grid.refetch_warn, defaulton). Setgrid.refetch_confirmtoonfor the previous prompt.history.enabled(defaulton) — saved files and opened/compiled object sources are kept as snapshots in the app data folderhistory/(up tohistory.max_per_item50 per item andhistory.max_mb200 MB).grid.edit_key_check(defaulton) — 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통과 · 필수 인자 수로 오버로드 고르기(OracleDEFAULTED· PostgreSQL 기본값) · PostgreSQLSET [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: zonedNUMERIC· 로케이터 값 디코드 · 지원 안 되는 바인드 형 →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_item50개 · 전체history.max_mb200 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