Dear all,



There seems to have been quite a lot of recent development and nice 
features, introduced to beanquery. In fact in beancount v3 beancount itself 
is just a library, used by beanquery and other tools, and most of the 
interactions of a user with its ledger is probably done via beanquery.



So, I am just wondering whether somebody can outline the roadmap for 
beanquery development?



*My understanding of the current state*

I may be mistaken, but it is my understanding, that at the moment beanquery 
seems to be supporting 2 modes:



*The original mode. *

This mode has a formal original documentation 
<https://docs.google.com/document/d/1s0GOZMcrKKCLlP29MD7kHO4L88evrwWdIO0p4EwRBE0/edit>
.


In this mode:

   - 
   
   all queries are running only against the postings table
   - 
   
   FROM part is responsible for entry-level filter expressions.
   - 
   
   In this mode also accounting- specific additions to the SQL-like 
   language  like JOURNAL, OPEN ON, CLOSE ON, BALANCES are available
   



*The new mode:*

   - 
   
   More (much more) tables available for query
   

beanquery> .tables

accounts

balances

commodities

documents

entries

events

notes

postings

prices

transactions

beanquery>



   - 
   
   The FROM part has a traditional role to select a table
   



   - 
   
   To activate this “new mode” one has to include the table name preceded 
   with the #
   

E.g.


beanquery> select account, open.date from #accounts


The JOIN feature of the SQL is not supported (yet) but for instance 
postings table is already joint with the transactions table (where it is 
called entry)


beanquery> .describe postings

table postings:

  type (str)

  id (str)

  date (date)

  year (int)

  month (int)

  day (int)

  filename (str)

  lineno (int)

  location (str)

  flag (str)

  payee (str)

  narration (str)

  description (str)

  tags (set)

  links (set)

  posting_flag (str)

  account (str)

  other_accounts (set)

  number (decimal)

  currency (str)

  cost_number (decimal)

  cost_currency (str)

  cost_date (date)

  cost_label (str)

  position (position)

  price (amount)

  weight (amount)

  balance (inventory)

  meta (dict)

  entry (transaction)        <===== Joint transaction table

  accounts (set[str])

beanquery>



In this mode all the additional perks like JOURNAL, OPEN ON, CLOSE ON, 
BALANCES do not seem to be available.





So, as far as I can see, we have this duality (old vs new mode). This 
creates a situation, that “there are often more ways to kill the cat” (I am 
not complaining, just concluding).


E.g. the following queries will all produce the same result


beanquery> select narration where date = 2020-01-03

beanquery> select narration from #postings where date = 2020-01-03

beanquery> select entry.narration from #postings where date = 2020-01-03



*Questions:*

Q1: Is my understanding of the current state of the beanquery correct?


Q2: what is the roadmap for beanquery? 


Will 2 modes supported going further?


Will the perks like JOURNAL, OPEN ON, CLOSE ON, BALANCES be brought in the 
new mode as well?


What new features are planned to be added to beanquery?


What features are planned to be dropped from beanquery?



-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/beancount/0b4cdd04-91ab-44f4-802d-e1a7ed609c8en%40googlegroups.com.

Reply via email to