emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Supporting non-free SQL clients in ob-sql (was: [PATCH] ob-sql: Add


From: Ihor Radchenko
Subject: Re: Supporting non-free SQL clients in ob-sql (was: [PATCH] ob-sql: Add support for Athena)
Date: Mon, 23 Jan 2023 12:45:30 +0000

Richard Stallman <rms@gnu.org> writes:

>   > > Because we already support Orcale, SAP Hana, MSSql and Vertico for 
> example.
>
> Would someone please tell me more concretely what kind of "support"
> this is? Which GNU package supports them, and how?  

[Jean Luis mentioned M-x sql-* commands in another message. They may
also be worth discussing, but are not what I meant in the original
message]

ob-sql is Org mode's feature (part of Emacs) allowing users to execute
SQL code inline inside Org files:

#+header: :engine sqlite
#+header: :database ~/.local/share/qutebrowser/history.sqlite
#+begin_src sql
  SELECT URL FROM History ORDER BY "URL" DESC LIMIT 5 
#+end_src

#+RESULTS:
| qute://help/commands.html |
| qute://help/commands.html |
| qute://help/              |
| qute://help               |
| qute://                   |

Note the :engine argument. It determines which CLI backend is being
called by Org mode to query the database.

;; Engines supported:
;; - mysql
;; - dbi
;; - mssql
;; - sqsh
;; - postgresql (postgres)
;; - oracle
;; - vertica
;; - saphana

Some of these engines are free software and we have no issue supporting
them. Some are not.

> ... Also, what kind
> of things are those?  Are they nonfree programs, or are they SaaSS?
> Some of them I recognize as nonfree programs, but some names I don't
> recognize at all.

At least, mssql is non-free with no source code available. Same for
oracle, vertica, and saphana.

I am not sure about SaaSS - even postgresql (free software) may be used
as a service provider by running it on server the user does not control.
Probably, I do not fully understand how SaaSS is defined (I did read
https://www.gnu.org/philosophy/who-does-that-server-really-serve.html)

Earlier in the thread, https://github.com/dbcli/athenacli was proposed
as another CLI to support. Athenacli itself is distributed under BSD-3 -
free license. However, the CLI is just an interface to Amazon Athena -
server-side database service.

>From my limited understanding, the main purpose of Amazon Athena is
querying "big data" databases for further analysis, which does not
constitute SaaSS (AFAIU) - users may not own the "big data" and may not
have enough resources on their own computers to run the SQL queries that
utilize machine learning models.

> There are situations where it is acceptable for a GNU package to
> support its use together with certain nonfree programs.  Mainly when
> the nonfree program so well known that this support mainly encourage
> people who already use that nonfree program to start using the GNU
> package with it, and is unlikely to do the converse.
>
> See the GNU Maintainers Guide for more details.

It is hard to define "well known". For me, oracle and mssql databases
are well-known (just by company name), while saphana and vertica are
not. But I do not work with SQL and thus lack expertise about what is
being used in reality. How to judge?

> However, use with a SaaSS system (service as a software substitute) is
> a different issue (though it has much in common).  I'd like to think
> about it and ask advisors for advice.  These details can help me start
> to think about it.

I feel very confused about possible guidelines for SaaSS.

SaaSS does not always require specific CLI tools to be used.
Consider common HTTP requests or GraphQL that might be employed to
communicate with SaaSS. Should we stop supporting HTTP requests just
because they can be used to communicate with SaaSS? Probably no.
What about something more specific like the ability to query remote
database provided by SaaSS service? One may just need login/password +
free sql implementation. What if it is not SELECT query, but INSERT
query sharing the data with SaaSS? What about the history of SELECT
queries being associated with the user and the sold to third-party? What
if external free CLI tool is needed? non-free CLI? There should probably
be a boundary somewhere, but it is not clear where it should lie.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]