aboutsummaryrefslogtreecommitdiff
path: root/src/bin/psql/print.h
Commit message (Collapse)AuthorAge
* Move psql's print.c and mbprint.c into src/fe_utils.Tom Lane2016-03-24
| | | | Just turning the crank ...
* Get rid of scribbling on a const variable in psql's print.c.Tom Lane2016-03-12
| | | | | | | | | | | | Commit a2dabf0e1dda93c8 had the bright idea that it could modify a "const" global variable if it merely casted away const from a pointer. This does not work on platforms where the compiler puts "const" variables into read-only storage. Depressingly, we evidently have no such platforms in our buildfarm ... an oversight I have now remedied. (The one platform that is known to catch this is recent OS X with -fno-common.) Per report from Chris Ruprecht. Back-patch to 9.5 where the bogus code was introduced.
* Remove printQueryOpt.quote field.Tom Lane2016-02-02
| | | | | | This field was included in the original definition of the printQueryOpt struct in commit a45195a191eec367, but it was not used anywhere in that commit, nor since then. Spotted by Dickson S. Guedes.
* Update copyright for 2016Bruce Momjian2016-01-02
| | | | Backpatch certain files through 9.1
* Clean up some psql issues around handling of the query output file.Tom Lane2015-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | Formerly, if "psql -o foo" failed to open the output file "foo", it would print an error message but then carry on as though -o had not been specified at all. This seems contrary to expectation: a program that cannot open its output file normally fails altogether. Make psql do exit(1) after reporting the error. If "\o foo" failed to open "foo", it would print an error message but then reset the output file to stdout, as if the argument had been omitted. This is likewise pretty surprising behavior. Make it keep the previous output state, instead. psql keeps SIGPIPE interrupts disabled when it is writing to a pipe, either a pipe specified by -o/\o or a transient pipe opened for purposes such as using a pager on query output. The logic for this was too simple and could sometimes re-enable SIGPIPE when a -o pipe was still active, thus possibly leading to an unexpected psql crash later. Fixing the last point required getting rid of the kluge in PrintQueryTuples and ExecQueryUsingCursor whereby they'd transiently change the global queryFout state, but that seems like good cleanup anyway. Back-patch to 9.5 but not further; these are minor-enough issues that changing the behavior in stable branches doesn't seem appropriate.
* Fix behavior of printTable() and friends with externally-invoked pager.Tom Lane2015-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The formatting modes that depend on knowledge of the terminal window width did not work right when printing a query result that's been fetched in sections (as a result of FETCH_SIZE). ExecQueryUsingCursor() would force use of the pager as soon as there's more than one result section, and then print.c would see an output file pointer that's not stdout and incorrectly conclude that the terminal window width isn't relevant. This has been broken all along for non-expanded "wrapped" output format, and as of 9.5 the issue affects expanded mode as well. The problem also caused "\pset expanded auto" mode to invariably *not* switch to expanded output in a segmented result, which seems to me to be exactly backwards. To fix, we need to pass down an "is_pager" flag to inform the print.c subroutines that some calling level has already replaced stdout with a pager pipe, so they should (a) not do that again and (b) nonetheless honor the window size. (Notably, this makes the first is_pager test in print_aligned_text() not be dead code anymore.) This patch is a bit invasive because there are so many existing calls of printQuery()/printTable(), but fortunately all but a couple can just pass "false" for the added parameter. Back-patch to 9.5 but no further. Given the lack of field complaints, it's not clear that we should change the behavior in stable branches. Also, the API change for printQuery()/printTable() might possibly break third-party code, again something we don't like to do in stable branches. However, it's not quite too late to do this in 9.5, and with the larger scope of the problem there, it seems worth doing.
* pgindent run for 9.5Bruce Momjian2015-05-23
|
* psql: add asciidoc output formatBruce Momjian2015-03-31
| | | | | | Patch by Szymon Guz, adjustments by me Testing by Michael Paquier, Pavel Stehule
* Add a pager_min_lines setting to psqlAndrew Dunstan2015-03-28
| | | | | | | | | | If set, the pager will not be used unless this many lines are to be displayed, even if that is more than the screen depth. Default is zero, meaning it's disabled. There is probably more work to be done in giving the user control over when the pager is used, particularly when wide output forces use of the pager regardless of how many lines there are, but this is a start.
* Update copyright for 2015Bruce Momjian2015-01-06
| | | | Backpatch certain files through 9.0
* Add unicode_{column|header|border}_style to psqlStephen Frost2014-09-12
| | | | | | | | | | | With the unicode linestyle, this adds support to control if the column, header, or border style should be single or double line unicode characters. The default remains 'single'. In passing, clean up the border documentation and address some minor formatting/spelling issues. Pavel Stehule, with some additional changes by me.
* Update copyright for 2014Bruce Momjian2014-01-07
| | | | | Update all files in head, and files COPYRIGHT and legal.sgml in all back branches.
* Fix translatability markings in psql, and add defenses against future bugs.Tom Lane2014-01-04
| | | | | | | | | | | | | | | | | | | | | | Several previous commits have added columns to various \d queries without updating their translate_columns[] arrays, leading to potentially incorrect translations in NLS-enabled builds. Offenders include commit 893686762 (added prosecdef to \df+), c9ac00e6e (added description to \dc+) and 3b17efdfd (added description to \dC+). Fix those cases back to 9.3 or 9.2 as appropriate. Since this is evidently more easily missed than one would like, in HEAD also add an Assert that the supplied array is long enough. This requires an API change for printQuery(), so it seems inappropriate for back branches, but presumably all future changes will be tested in HEAD anyway. In HEAD and 9.3, also clean up a whole lot of sloppiness in the emitted SQL for \dy (event triggers): lack of translatability due to failing to pass words-to-be-translated through gettext_noop(), inadequate schema qualification, and sloppy formatting resulting in unnecessarily ugly -E output. Peter Eisentraut and Tom Lane, per bug #8702 from Sergey Burladyan
* Add a latex-longtable output format to psqlBruce Momjian2013-01-17
| | | | | latex longtable is more powerful than the 'tabular' output format 'latex' uses. Also add border=3 support to 'latex'.
* Update copyrights for 2013Bruce Momjian2013-01-01
| | | | | Fully update git head, and update back branches in ./COPYRIGHT and legal.sgml files.
* Run pgindent on 9.2 source tree in preparation for first 9.3Bruce Momjian2012-06-10
| | | | commit-fest.
* Tweak psql to print row counts when \x auto chooses non-expanded output.Robert Haas2012-05-01
| | | | Noah Misch
* psql: Remove inappropriate const qualifiersPeter Eisentraut2012-03-16
| | | | | Since mbvalidate() can alter the string it validates, having the callers claim that the strings they accept are const is inappropriate.
* psql: Support zero byte field and record separatorsPeter Eisentraut2012-02-09
| | | | | | | | Add new psql settings and command-line options to support setting the field and record separators for unaligned output to a zero byte, for easier interfacing with other shell tools. reviewed by Abhijit Menon-Sen
* Update copyright notices for year 2012.Bruce Momjian2012-01-01
|
* Add psql expanded auto modePeter Eisentraut2011-11-12
| | | | | | | This adds the "auto" option to the \x command, which switches to the expanded mode when the normal output would be wider than the screen. reviewed by Noah Misch
* Stamp copyrights for year 2011.Bruce Momjian2011-01-01
|
* Remove cvs keywords from all files.Magnus Hagander2010-09-20
|
* pgindent run for 9.0, second runBruce Momjian2010-07-06
|
* Fix numericlocale psql option when used with a null string and latex and troffHeikki Linnakangas2010-03-01
| | | | | | | | | | formats; a null string must not be formatted as a numeric. The more exotic formats latex and troff also incorrectly formatted all strings as numerics when numericlocale was on. Backpatch to 8.1 where numericlocale option was added. This fixes bug #5355 reported by Andy Lester.
* pgindent run for 9.0Bruce Momjian2010-02-26
|
* Update copyright for the year 2010.Bruce Momjian2010-01-02
|
* Improve psql's tabular display of wrapped-around data by inserting markersTom Lane2009-11-22
| | | | | | | | | | | | | | | | in the formerly-always-blank columns just to left and right of the data. Different marking is used for a line break caused by a newline in the data than for a straight wraparound. A newline break is signaled by a "+" in the right margin column in ASCII mode, or a carriage return arrow in UNICODE mode. Wraparound is signaled by a dot in the right margin as well as the following left margin in ASCII mode, or an ellipsis symbol in the same places in UNICODE mode. "\pset linestyle old-ascii" is added to make the previous behavior available if anyone really wants it. In passing, this commit also cleans up a few regression test files that had unintended spacing differences from the current actual output. Roger Leigh, reviewed by Gabrielle Roth and other members of PDXPUG.
* Add "\pset linestyle ascii/unicode" option to psql, allowing our traditionalTom Lane2009-10-13
| | | | | | | | | | | ASCII-art style of table output to be upgraded to use Unicode box drawing characters if desired. By default, psql will use the Unicode characters whenever client_encoding is UTF8. The patch forces linestyle=ascii in pg_regress usage, ensuring we don't break the regression tests in Unicode locales. Roger Leigh
* 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef listBruce Momjian2009-06-11
| | | | provided by Andrew.
* Update copyright for 2009.Bruce Momjian2009-01-01
|
* In psql, rename trans_* variables to translate_*, for clarity.Bruce Momjian2008-07-14
|
* Improve psql's internal print.c code by introducing an actual print API.Alvaro Herrera2008-05-12
| | | | | | | | Provides for better code readability, but mainly this is infrastructure changes to allow further changes such as arbitrary footers on printed tables. Also, the translation status of each element in the table is more easily customized. Brendan Jurd, with some editorialization by me.
* Add psql '\pset format wrapped' mode to wrap output to screen width, orBruce Momjian2008-05-08
| | | | | | file/pipe output too if \pset columns' is set. Bryce Nesbitt
* Update copyrights in source tree to 2008.Bruce Momjian2008-01-01
|
* Improve the method of localizing column names and other fixed strings inTom Lane2007-12-12
| | | | | | | | | | | | | | | psql's \d commands and other uses of printQuery(). Previously we would pass these strings through gettext() and then send them to the server as literals in the SQL query. But the code was not set up to handle doubling of quotes in the strings, causing failure if a translation attempted to use the wrong kind of quote marks, as indeed is now the case for (at least) the French translation of \dFp. Another hazard was that gettext() would translate to whatever encoding was implied by the client's LC_CTYPE setting, which might be different from the client_encoding setting, which would probably cause the server to reject the query as mis-encoded. The new arrangement is to send the untranslated ASCII strings to the server, and do the translations inside printQuery() after the query results come back. Per report from Guillaume Lelarge and subsequent discussion.
* Update CVS HEAD for 2007 copyright. Back branches are typically notBruce Momjian2007-01-05
| | | | back-stamped for this.
* Create a FETCH_COUNT parameter that causes psql to execute SELECT-likeTom Lane2006-08-29
| | | | | | | | queries via a cursor, fetching a limited number of rows at a time and therefore not risking exhausting memory. A disadvantage of the scheme is that 'aligned' output mode will align each group of rows independently leading to odd-looking output, but all the other output formats work reasonably well. Chris Mair, with some additional hacking by moi.
* Update copyright for 2006. Update scripts.Bruce Momjian2006-03-05
|
* Disable expanded mode only for \d tablename, not for all backslashBruce Momjian2005-10-27
| | | | commands. Per complaint that \df+ is clearer in expanded mode.
* Standard pgindent run for 8.1.Bruce Momjian2005-10-15
|
* \pset numericsep -> numericlocale.Bruce Momjian2005-07-18
|
* Change numericsep to a boolean, and make it locale-aware.Bruce Momjian2005-07-14
|
* Add psql \pset numericsep to allow output numbers like 100,000.0 orBruce Momjian2005-07-10
| | | | | | 100.000,0. Eugen Nedelcu
* Add -L option to psql to log sessions.Bruce Momjian2005-06-14
| | | | Lorne Sunley
* Per discussion on -hackers, this patch changes psql's "expanded" outputNeil Conway2005-06-13
| | | | | | mode to only affect the presentation of normal query results, not the output of psql slash commands. Documentation updated. I also made some unrelated minor psql cleanup. Per suggestion from Stuart Cooper.
* I've created a patch which adds support for troff "-ms" output toBruce Momjian2005-06-09
| | | | | | | | | | | | | | | | | | | | | | | psql. i.e. "\pset format troff-ms". The patch also corrects some problems with the "latex" format, notably defining an extra column in the output table, and correcting some alignment issues; it also changes the output to match the border setting as documented in the manual page and as shown with the "aligned" format. The troff-ms output is mostly identical to the latex output allowing for the differences between the two typesetters. The output should be saved in a file and piped as follows: cat file | tbl | troff -T ps -ms > file.ps or tbl file | troff -T ps -ms > file.ps Because it contains tabs, you'll need to redirect psql output or use "script", rather than pasting from a terminal window, due to the tabs which can be replaced with spaces. Roger Leigh
* Update copyrights that were missed.Bruce Momjian2005-01-01
|
* Update copyright to 2004.Bruce Momjian2004-08-29
|
* $Header: -> $PostgreSQL Changes ...PostgreSQL Daemon2003-11-29
|