- [Fix] Fixed
Set
method inConnection
class to recognize same descriptor with different aliases (#532) - [Fix] Added bottom-padding to the buttons in table explorer. Now they are not hidden by the scrollbar (#540)
- [Feature] Modified
histogram
command to support data with NULL values (#176) - [Fix]
psutil
is no longer a dependency for JupySQL (#541) - [Feature] Automated dependency inference when creating CTEs.
--with
is now deprecated and will display a warning. (#166) - [Feature] Close all connections when Python shuts down (#563)
- [Doc] Added bar and pie examples in the plotting section (#564)
- [Doc] Added more details to the SQL parametrization user guide. (#288)
- [Doc] Snowflake integration guide (#384)
- [Doc] User guide on using JupySQL in
.py
scripts (#449) - [Fix] Validating arguments passed to
%%sql
(#561)
- [Feature] Add
%sqlplot bar
and%sqlplot pie
(#508)
- [Feature] Clearer message display when executing queries, listing connections and persisting data frames (#432)
- [Feature]
%sql --connections
now displays an HTML table in Jupyter and a text-based table in the terminal - [Fix] Fix CTE generation when the snippets have trailing semicolons
- [Doc] Hiding connection string when passing
--alias
when opening a connection (#432) - [Doc] Fix
api/magic-sql.md
since it incorrectly stated that listing functions was--list
, but it's--connections
(#432) - [Doc] Added Howto documentation for enabling JupyterLab cell runtime display (#448)
-
[Feature] Add
%sqlcmd explore
to explore tables interactively (#330) -
[Feature] Support for printing capture variables using
=<<
syntax (by @jorisroovers) -
[Feature] Adds
--persist-replace
argument to replace existing tables when persisting data frames (#440) -
[Fix] Fix error when checking if custom connection was PEP 249 Compliant (#517)
-
[Doc] documenting how to manage connections with
Connection
object (#282) -
[Feature] Github Codespace (Devcontainer) support for development (by @jorisroovers) (#484)
-
[Feature] Added bar plot and pie charts to %sqlplot (#417)
- [Feature] Using native DuckDB
.df()
method when usingautopandas
- [Feature] Better error messages when function used in plotting API unsupported by DB driver (#159)
- [Feature] Detailed error messages when syntax error in SQL query, postgres connection password missing or inaccessible, invalid DuckDB connection string (#229)
- [Fix] Fix the default value of %config SqlMagic.displaylimit to 10 (#462)
- [Doc] documenting
%sqlcmd tables
/%sqlcmd columns
No changes
Never deployed due to a CI error
- [Fix] Fixing ipython version to 8.12.0 on python 3.8
- [Fix] Fix
--alias
when passing an existing engine - [Doc] Tutorial on querying excel files with pandas and jupysql (#423)
- [Feature] Support for DB API 2.0 drivers (#350)
- [Feature] Improve boxplot performance (#152)
- [Feature] Add sticky first column styling to sqlcmd profile command
- [Fix] Updates errors so only the error message is displayed (and traceback is hidden) (#407)
- [Fix] Fixes
%sqlcmd plot
when--table
or--column
have spaces (#409) - [Doc] Add QuestDB tutorial (#350)
- [Feature] Upgrades SQLAlchemy version to 2
- [Fix] Fix
%sqlcmd columns
in MySQL and MariaDB - [Fix]
%sqlcmd --test
improved, changes in logic and addition of user guide (#275) - [Doc] Algolia search added (#64)
- [Doc] Updating connecting guide (by @DaveOkpare) (#56)
JupySQL is now available via conda install jupysql -c conda-forge
. Thanks, @sterlinm!
- [API Change] Deprecates old SQL parametrization:
$var
,:var
, and{var}
in favor of{{var}}
- [Feature] Adds
%sqlcmd profile
(#66) - [Feature] Adds
%sqlcmd test
to run tests on tables - [Feature] Adds
--interact
argument to%%sql
to enable interactivity in parametrized SQL queries (#293) - [Feature] Results parse HTTP URLs to make them clickable (#230)
- [Feature] Adds
ggplot
plotting API (histogram and boxplot) - [Feature] Adds
%%config SqlMagic.polars_dataframe_kwargs = {...}
(by @jorisroovers) - [Feature] Adding
sqlglot
to better support SQL dialects in some internal SQL queries - [Fix] Clearer error when using bad table/schema name with
%sqlcmd
and%sqlplot
(#155) - [Fix] Fix
%sqlcmd
exception handling (#262) - [Fix]
--save
+--with
double quotes syntax error in MySQL (#145) - [Fix] Clearer error when using
--with
with snippets that do not exist (#257) - [Fix] Pytds now automatically compatible
- [Fix] Jupysql with autopolars crashes when schema cannot be inferred from the first 100 rows (by @jorisroovers) (#312)
- [Fix] Fix problem where a
%name
in a query (even if commented) would be interpreted as a query parameter (#362) - [Fix] Better support for MySQL and MariaDB (generating internal SQL queries with backticks instead of double quotes)
- [Doc] Tutorial on ETLs via Jupysql and Github actions
- [Doc] SQL keywords autocompletion
- [Doc] Included schema and dataspec into
%sqlrender
API reference
- [Fix] Pinning SQLAlchemy 1.x
- [Feature] Displaying warning when passing a identifier with hyphens to
--save
or--with
- [Fix] Addresses enable AUTOCOMMIT config issue in PostgreSQL (#90)
- [Doc] User guide on querying Github API with DuckDB and JupySQL
Note: This release has been yanked due to an error when using it with SQLAlchemy 2
- [Fix] Adds support for SQL Alchemy 2.0
- [Doc] Summary section on jupysql vs ipython-sql
- [Fix] Displaying variable substitution warning only when the variable to expand exists in the user's namespace
- [Fix] Deprecation warning incorrectly displayed #213
- [Feature] Support new variable substitution using
{{variable}}
format (#137) - [Fix] Adds support for newer versions of prettytable
- [API Change] Drops support for old versions of IPython (removed imports from
IPython.utils.traitlets
) - [Feature] Adds
%%config SqlMagic.autopolars = True
(#138)
- [Feature] Shows missing driver package suggestion message (#124)
- [Fix] Clearer error message on connection failure (#120)
- [Doc] Adds tutorial on querying JSON data
- [Feature] Adds
%jupysql
/%%jupysql
as alias for%sql
/%%sql
- [Fix] Adds community link to
ValueError
andTypeError
- [Feature] Adds
%sqlcmd tables
(#76) - [Feature] Adds
%sqlcmd columns
(#76) - [Fix]
setup.py
fix due to change in setuptools 67.0.0
- Adds example for connecting to a SQLite database with spaces (#35)
- Documents how to securely pass credentials (#40)
- Adds
-a/--alias
option to name connections for easier management (#59) - Adds
%sqlplot
for plotting histograms and boxplots - Adds missing documentation for the Python API
- Several improvements to the
sql.plot
module - Removes
six
as dependency (drops Python 2 support)
- Allow to connect to databases with an existing
sqlalchemy.engine.Engine
object
ResultSet.plot()
,ResultSet.bar()
, andResultSet.pie()
returnmatplotlib.Axes
objects
- Assigns a variable without displaying an output message (#13)
- Updates telemetry key
- Adds anonymous telemetry
- Adds
plot
module (boxplot and histogram)
- Adds
--save
,--with
, and%sqlrender
for SQL composition (#1)
First version release by Ploomber
- Adds
--no-index
option to--persist
data frames without the index
- Fixed .rst file location in MANIFEST.in
- Parse SQL comments in first line
- Bugfixes for DSN,
--close
, others
- Changed most non-SQL commands to argparse arguments (thanks pik)
- User can specify a creator for connections (thanks pik)
- Bogus pseudo-SQL command
PERSIST
removed, replaced with--persist
arg - Turn off echo of connection information with
displaycon
in config - Consistent support for {} variables (thanks Lucas)
- Restored Python 2 compatibility (thanks tokenmathguy)
- Fix truth value of DataFrame error (thanks michael-erasmus)
<<
operator (thanks xiaochuanyu)- added README example (thanks tanhuil)
- bugfix in executing column_local_vars (thanks tebeka)
- pgspecial installation optional (thanks jstoebel and arjoe)
- conceal passwords in connection strings (thanks jstoebel)
- Stop warnings for deprecated use of IPython 3 traitlets in IPython 4 (thanks graphaelli; also stonebig, aebrahim, mccahill)
- README update for keeping connection info private, from eshilts
- Avoid "connection busy" error for SQL Server (thanks Andrés Celis)
- New
column_local_vars
config option submitted by darikg - Avoid contaminating user namespace from locals (thanks alope107)
- Fixed issue number 30, commit failures for sqlite (thanks stonebig, jandot)
- Indentations visible in HTML cells
- COMMIT each SQL statement immediately - prevent locks
- PERSIST pseudo-SQL command added
- Python 3 compatibility restored
- DSN access supported (thanks Berton Earnshaw)
.csv(filename=None)
method added to result sets
-
Reporting of number of rows affected configurable with
feedback
-
Local variables usable as SQL bind variables
Release date: 13-Oct-2013
- displaylimit config parameter
- reports number of rows affected by each query
- test suite working again
- dict-style access for result sets by primary key
Release date: 20-Sep-2013
-
Contributions from Olivier Le Thanh Duong:
-
SQL errors reported without internal IPython error stack
-
Proper handling of configuration
-
-
Added .DataFrame(), .pie(), .plot(), and .bar() methods to result sets
Release date: 01-Aug-2013
Deleted Plugin import left behind in 0.2.2
Release date: 30-July-2013
Converted from an IPython Plugin to an Extension for 1.0 compatibility
Release date: 15-June-2013
-
Recognize socket connection strings
-
Bugfix - issue 4 (remember existing connections by case)
Release date: 30-May-2013
- Accept bind variables (Thanks Mike Wilson!)
Release date: 29-Mar-2013
-
Python 3 compatibility
-
use prettyprint package
-
allow multiple SQL per cell
Release date: 29-Mar-2013
-
Release to PyPI
-
Results returned as lists
-
print(_) to get table form in text console
-
set autolimit and text wrap in configuration
Release date: 21-Mar-2013
- Initial release