Re: Other formats in pset like markdown, rst, mediawiki

From: Jan Michálek <godzilalalala(at)gmail(dot)com>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: "Ideriha, Takeshi" <ideriha(dot)takeshi(at)jp(dot)fujitsu(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Other formats in pset like markdown, rst, mediawiki
Date: 2017-03-21 10:35:33
Message-ID: CAAYBy8aFja5N9ccG0YTOs70i7ncjbgEChjV4aGeJvLyALE0e+A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2017-03-21 11:01 GMT+01:00 Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>:

>
>
> 2017-03-21 10:59 GMT+01:00 Jan Michálek <godzilalalala(at)gmail(dot)com>:
>
>>
>>
>> 2017-03-21 9:59 GMT+01:00 Ideriha, Takeshi <ideriha(dot)takeshi(at)jp(dot)fujitsu(dot)co
>> m>:
>>
>>> Hi,
>>>
>>> I like your suggestion and took a look at your patch though I’m not the
>>> expert about psql.
>>>
>>>
>>>
>>> I like the idea taking advantage of linestyle utilities
>>>
>>> to implement rst and markdown format efficiently instead of newly
>>> developing pset format things.
>>>
>>> But I'm thinking two comments below needs change to something about not
>>> focusing only linestyle.
>>>
>>> That's because they really take care of both '\pset linestyle and \pset
>>> format' and it may lead to misunderstanding to readers.
>>>
>>>
>>>
>>> ---
>>>
>>> /* Line style control structures */
>>>
>>> const printTextFormat pg_markdown =
>>>
>>>
>>>
>>> /* get selected or default line style */
>>>
>>> const printTextFormat *
>>>
>>> get_line_style(const printTableOpt *opt)
>>>
>>> ---
>>>
>>
>> It is in command.c?
>>
>> I have it done that \pset format changes linestyle
>>
>> psql (9.6.2, server 9.6.1)
>> Type "help" for help.
>>
>> jelen=# \pset linestyle ascii
>> Line style is ascii.
>> jelen=# \pset format rst
>> Output format is rst.
>> jelen=# \pset linestyle
>> Line style is rst.
>> jelen=#
>>
>> Peter wrote that this is not right, but i don`t know how it should like,
>> because most of this is done on linestyle, format is used only for switch
>> from console.
>>
>>
>>
>>>
>>>
>>> The rest things are about code style convention.
>>>
>>> - there are some indents with white spaces around
>>> skip_leading_spaces_print()
>>>
>>> but Postgresql conventions says indents should be with 4 column tab.
>>>
>>> https://www.postgresql.org/docs/devel/static/source-format.html
>>>
>>
>> Thanks, i often using 4 whitespaces (i have it in vim) but in other code
>> i found mostly used 8 whitespaces.
>> I will look on this. I use code from another functions (fputnbytes,
>> print_html_escaped) as template.
>>
>>
>>>
>>>
>>> - On the other hand, in docs there are some tab indent
>>>
>>> but white space indenet is preferable. Looking around sgml files,
>>> white space is used.
>>>
>>>
>>>
>>> - some multi-line comment style also needs fix according to the above
>>> documentation (link)
>>>
>>
>> I will look on the comments, this is only work version, coding style
>> issues will be corrected (i have some comments only my orientation in code).
>>
>>
>>>
>>>
>>> - And I also found patch cannot be applied to current master.
>>>
>>
>> I have 9.6.2 source code. It is not correct? Where i find source code i
>> should use?
>>
>
> Please use git master https://wiki.postgresql.org/wiki/Working_with_Git
>
> Thanks, i will look on this on weekend.

> Regards
>
> Pavel
>
>>
>> Have nice day
>> Jan
>>
>>
>>>
>>>
>>> Regards,
>>>
>>> Ideriha, Takeshi
>>>
>>>
>>>
>>> *From:* pgsql-hackers-owner(at)postgresql(dot)org [mailto:
>>> pgsql-hackers-owner(at)postgresql(dot)org] *On Behalf Of *Jan Michalek
>>> *Sent:* Sunday, March 19, 2017 5:10 AM
>>> *To:* Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
>>> *Cc:* Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>; PostgreSQL mailing lists
>>> <pgsql-hackers(at)postgresql(dot)org>
>>> *Subject:* Re: [HACKERS] Other formats in pset like markdown, rst,
>>> mediawiki
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2017-03-12 19:21 GMT+01:00 Jan Michálek <godzilalalala(at)gmail(dot)com>:
>>>
>>>
>>>
>>>
>>>
>>> 2017-03-10 9:43 GMT+01:00 Jan Michálek <godzilalalala(at)gmail(dot)com>:
>>>
>>>
>>>
>>>
>>>
>>> 2017-03-09 20:10 GMT+01:00 Peter Eisentraut <
>>> peter(dot)eisentraut(at)2ndquadrant(dot)com>:
>>>
>>> This is looking pretty neat. I played around with it a bit. There are
>>> a couple of edge cases that you need to address, I think.
>>>
>>>
>>>
>>> Thanks, original code is very synoptical and and well prepared for
>>> adding new formats.
>>>
>>>
>>>
>>>
>>> - Does not support \x
>>>
>>>
>>>
>>> I know, i dnot`t know, if \x make sense in this case. I will look, how
>>> it is done in other formats like html. I think, that it should work in
>>> sense, that table generated to rst should give similar output after
>>> processing like output of html format.
>>>
>>>
>>>
>>> I prepared something like this (i have no prepared diff, i need do some
>>> another changes)
>>>
>>> There a few things I need to do. First problem is bold column names, i
>>> should do it in sme fashin as "RECORD", but i need to do some research
>>> about length of column.
>>>
>>> Bigger problem is with tab indent, rst processor doesn`t work with this
>>> in this case.
>>>
>>>
>>> In new diff is added \x for rst and skipping leading spaces in rst in
>>> both. make check passed
>>>
>>>
>>>
>>> Jan
>>>
>>>
>>>
>>>
>>>
>>> jelen=# execute q \g | xclip
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | **RECORD 1**
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column1 | Elephant, kangaroo,
>>> |
>>> | | squirrel, gorilla
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column2 | 121
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column3 | 1.0035971223021583
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column4 | 0.1111
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column5 | Hello Hello Hello Hello Hello Hello Hello Hello Hello
>>> Hello |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | **RECORD 2**
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column1 | goat, rhinoceros,
>>> |
>>> | | monkey, ape
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column2 | 11121
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column3 | 1.0007824726134585
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column4 | 5.1111
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column5 | xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx
>>> xxxxxx xxxxxx |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | **RECORD 3**
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column1 | donkey, cow, horse, tit,
>>> |
>>> | | eagle, whale,
>>> |
>>> | | aligator,
>>> |
>>> | | pelican,
>>> |
>>> | | grasshoper
>>> |
>>> | | pig
>>> |
>>> | | bat
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column2 | 14351
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column3 | 50.3877551020408163
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column4 | 345.11
>>> |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>> | column5 | yyyyyy yyyyyy yyyyyy yyyyyy yyyyyy yyyyyy yyyyyy yyyyyy
>>> yyyyyy yyyyyy |
>>> +---------+-------------------------------------------------
>>> -----------------------+
>>>
>>>
>>>
>>>
>>>
>>>
>>> - When \pset format is rst, then \pset linestyle also shows up as
>>> "rst". That is wrong. Same for markdown.
>>>
>>>
>>>
>>> I will look on this.
>>>
>>>
>>>
>>>
>>> - Broken output in tuples_only (\t) mode. (rst and markdown)
>>>
>>>
>>>
>>> Similar to \x, im not certain, what it should return. I will look, what
>>> returns html format. Or i can use it in markdown for nice vs expanded
>>> format.
>>>
>>>
>>>
>>>
>>> - rst: Do something about \pset title; the way it currently shows up
>>> appears to be invalid; could use ".. table:: title" directive
>>>
>>>
>>>
>>> OK, it shouldn`t be problem alter this.
>>>
>>>
>>>
>>>
>>> - markdown: Extra blank line between table and footer.
>>>
>>>
>>>
>>> It is because markdown needs empty line after table, if is row count
>>> presented.
>>>
>>>
>>>
>>>
>>> - markdown: We should document or comment somewhere exactly which of the
>>> various markdown table formats this is supposed to produce. (Pandoc
>>> pipe_tables?)
>>>
>>>
>>>
>>> I use format that was similar to aligned format and ascii linestyle,
>>> because it allows me to use existing features. I should look over more
>>> table styles in markdown.
>>>
>>>
>>>
>>>
>>> - markdown: Table title needs to be after the table, like
>>>
>>> Table: title
>>>
>>> I will change this.
>>>
>>>
>>>
>>> - markdown: Needs to escape | characters in cell contents. (Not
>>> needed for rst.) More escaping might be needed.
>>>
>>>
>>>
>>> This can be problem because of aligning, i will look on this, this same
>>> problem as replace newline with </br> for markdown.
>>>
>>>
>>>
>>> Have Nice day
>>>
>>> Jan
>>>
>>>
>>>
>>>
>>> --
>>> Peter Eisentraut http://www.2ndQuadrant.com/
>>> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Jelen
>>>
>>> Starší čeledín datovýho chlíva
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Jelen
>>>
>>> Starší čeledín datovýho chlíva
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Jelen
>>>
>>> Starší čeledín datovýho chlíva
>>>
>>
>>
>>
>> --
>> Jelen
>> Starší čeledín datovýho chlíva
>>
>
>

--
Jelen
Starší čeledín datovýho chlíva

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Dilip Kumar 2017-03-21 10:36:30 Re: Enabling parallelism for queries coming from SQL or other PL functions
Previous Message Kyotaro HORIGUCHI 2017-03-21 10:32:40 Re: Logical Replication and Character encoding