Friday, April 15, 2022

Orafce 3.21.0

I released Orafce 3.21.0. In this release, the Oracle regexp functions regexp_instr and regexp_replace was backported (and little bit modified) from PostgreSQL 15. The C implementation is more faster, and much more robust than PLpgSQL implementation. The problem was not in just PL/pgSQL, but in some missing possibilities of PostgreSQL regexp API available from SQL or PL/pgSQL.

Attention, although the code was backported from Postgres, the behavior is little bit different for making higher compatibility with Oracle. There is little bit different handling NULL values.

Tuesday, April 5, 2022

New releases Orafce and plpgsql_check

 I released bugfix releases of plpgsql_check and Orafce.

Attention - In had to change signature of nvl2 function in Orafce. With this change, the behave is much more close to Oracle's nvl2 function.  Unfortunately, this change can break extension update when some users use nvl2 function in views.  The related views should be dropped first, and after extension update should be created again.

Monday, December 20, 2021

2021 Resume

This year was not too good. Fortunately, I lost nobody from my family, but (unfortunately) my friends yes. I had not too much trainings, so there was more time to write code. 


  • clipboard support with CSV, text and INSERT formats
  • better handling mouse in xterm mode 1002
  • vertical scrollbar
  • possibility to select range for export
  • query stream mode
  • backslash commands supports
  • code re-factoring, and significant flickering reduction
  • export to program
  • switch to primary screen by ^o
  • progressive data loading
  • pretty printing of help texts
  • support for custom themes
  • new visual effects and possibility to read SQLcl output
  • kqueue (BSD) support
  • smooth horizontal scrolling


  • short syntax for pragma, pragmas TABLE and TYPE
  • little bit smarter check of format string used by format function in EXECUTE command
  • possibility to save execution's profile of aborted on cancelled function.



  • unistr in PostgreSQL 14
  • performance optimization of CALL command in PostgreSQL 14
  • possibility to use pspg together with \watch command (PSQL_WATCH_PAGER) in PostgreSQL 15
  • lot of revisions of patch for possibility to read options from file for pg_dump
  • significant refactoring of patch of implementation session variables

Some projects are very (too) long. But I hope, so they are near to final stage, and so next  year will be more time for more usual life, and less time for coding.



Tuesday, November 2, 2021

pspg 5.5.0

 Today I released pspg 5.5. There are few new interesting features:

  • stream mode based on continuous reading from file (uses kqueue) is supported on BSD Unix,
  • There are two new visual effects - possibility to hide border line, and possibility to highlight odd rows
  • pspg can be used in Oracle's SQLcl client too. It should to work with default format and with ANSICONSOLE format,
  • one char vertical scrolling is supported too. 


Sunday, October 31, 2021

Orafce 3.17.0

I released Orafce 3.17.0. This is bugfix only release. Giles Darold wrote a patch that fixes orafce's regexp functions for NULL arguments.

Tuesday, October 12, 2021

pspg 5.4.1 released

I released bugfix release of pspg. The problem with copy to clipboard on macos (using by pbcopy) is fixed in this release.

Monday, October 11, 2021

Orafce 3.16.2 for Postgres 12, 13 and 14 for Microsoft Windows

I made dll of orafce 3.16.2. These dll are available from archive Instalation is simple. Copy related dll file to directory Program files/Postgres/version/lib and rename this dll just to orafce. Next, copy orafce.control and orafce--3.16.sql to Program files/Postgres/version/share/extension. Last step is executing command CREATE EXTENSION orafce in the database, where you want to use orafce. It can require redistributable runtime for Visual Studio 2019. Usually an good idea is set SEARCH_PATH to include schema oracle.