read_rate, write_rate);
             appendStringInfo(&buf, _("system usage: %s\n"), pg_rusage_show(&ru0));
             appendStringInfo(&buf,
 -                            _("WAL usage: %ld records, %ld full page images, "
 -                              UINT64_FORMAT " bytes"),
 +                            _("WAL usage: %ld records, %ld full page images, %llu bytes"),
                              walusage.wal_records,
                              walusage.wal_fpi,
 -                            walusage.wal_bytes);
 +                            (unsigned long long) walusage.wal_bytes);
  
             ereport(LOG,
                     (errmsg_internal("%s", buf.data)));
                                             false);
     elevel = lvshared->elevel;
  
 -   ereport(DEBUG1,
 -           (errmsg("starting parallel vacuum worker for %s",
 -                   lvshared->for_cleanup ? "cleanup" : "bulk delete")));
 +   if (lvshared->for_cleanup)
 +       elog(DEBUG1, "starting parallel vacuum worker for cleanup");
 +   else
 +       elog(DEBUG1, "starting parallel vacuum worker for bulk delete");
  
     /* Set debug_query_string for individual workers */
     sharedquery = shm_toc_lookup(toc, PARALLEL_VACUUM_KEY_QUERY_TEXT, false);
             if (currentSource == XLOG_FROM_STREAM && WalRcvRunning())
     {
         ereport(LOG,
 -               (errmsg("wal receiver process shutdown requested")));
 +               (errmsg("WAL receiver process shutdown requested")));
  
         pendingWalRcvRestart = true;
     }
                         (OidIsValid(member->righttype) && member->righttype != typeoid))
                 ereport(ERROR,
                         (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
 -                        errmsg("associated data types for opclass options parsing functions must match opclass input type")));
 +                        errmsg("associated data types for operator class options parsing functions must match opclass input type")));
         }
         else
         {
             if (member->lefttype != member->righttype)
                 ereport(ERROR,
                         (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
 -                        errmsg("left and right associated data types for opclass options parsing functions must match")));
 +                        errmsg("left and right associated data types for operator class options parsing functions must match")));
         }
  
         if (procform->prorettype != VOIDOID ||
              procform->proargtypes.values[0] != INTERNALOID)
             ereport(ERROR,
                     (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
 -                    errmsg("invalid opclass options parsing function"),
 -                    errhint("Valid signature of opclass options parsing function is '%s'.",
 +                    errmsg("invalid operator class options parsing function"),
 +                    errhint("Valid signature of operator class options parsing function is %s.",
                              "(internal) RETURNS void")));
     }
  
             if (ConstraintImpliedByRelConstraint(rel, list_make1(nnulltest), NIL))
     {
         ereport(DEBUG1,
 -               (errmsg("existing constraints on column \"%s\".\"%s\" are sufficient to prove that it does not contain nulls",
 +               (errmsg("existing constraints on column \"%s.%s\" are sufficient to prove that it does not contain nulls",
                         RelationGetRelationName(rel), NameStr(attr->attname))));
         return true;
     }
                     {
                 ereport(elevel,
                         (errcode(ERRCODE_CONFIG_FILE_ERROR),
 -                        errmsg("clientcert can not be set to \"no-verify\" when using \"cert\" authentication"),
 +                        errmsg("clientcert cannot be set to \"no-verify\" when using \"cert\" authentication"),
                          errcontext("line %d of configuration file \"%s\"",
                                     line_num, HbaFileName)));
 -               *err_msg = "clientcert can not be set to \"no-verify\" when using \"cert\" authentication";
 +               *err_msg = "clientcert cannot be set to \"no-verify\" when using \"cert\" authentication";
                 return false;
             }
             hbaline->clientcert = clientCertOff;
                 return;
  
     if (data->portalName && data->portalName[0] != '\0')
 -       errcontext("extended query \"%s\" with parameters: %s",
 +       errcontext("portal \"%s\" with parameters: %s",
                    data->portalName, data->params->paramValuesStr);
     else
 -       errcontext("extended query with parameters: %s",
 +       errcontext("unnamed portal with parameters: %s",
                    data->params->paramValuesStr);
  }
                 if (!stmt->sortClause && limitClause->limitOption == LIMIT_OPTION_WITH_TIES)
             ereport(ERROR,
                     (errcode(ERRCODE_SYNTAX_ERROR),
 -                    errmsg("WITH TIES options can not be specified without ORDER BY clause")));
 +                    errmsg("WITH TIES cannot be specified without ORDER BY clause")));
         stmt->limitOption = limitClause->limitOption;
     }
     if (withClause)
                 IsA(clause, A_Const) && ((A_Const *) clause)->val.type == T_Null)
         ereport(ERROR,
                 (errcode(ERRCODE_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE),
 -                errmsg("row count cannot be NULL in FETCH FIRST ... WITH TIES clause")));
 +                errmsg("row count cannot be null in FETCH FIRST ... WITH TIES clause")));
  
     return qual;
  }
             {
         if (total_checksum_failures > 1)
             ereport(WARNING,
 -                   (errmsg("%lld total checksum verification failures", total_checksum_failures)));
 +                   (errmsg_plural("%lld total checksum verification failure",
 +                                  "%lld total checksum verification failures",
 +                                  total_checksum_failures,
 +                                  total_checksum_failures)));
  
         ereport(ERROR,
                 (errcode(ERRCODE_DATA_CORRUPTED),
             if (nprepared > 0)
         ereport(ERROR,
                 (errcode(ERRCODE_OBJECT_IN_USE),
 -                errmsg("database \"%s\" is being used by prepared transaction",
 +                errmsg("database \"%s\" is being used by prepared transactions",
                         get_database_name(databaseId)),
                  errdetail_plural("There is %d prepared transaction using the database.",
                                   "There are %d prepared transactions using the database.",
             if (!useTz)
         ereport(ERROR,
                 (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
 -                errmsg("cannot convert value from %s to %s without timezone usage",
 +                errmsg("cannot convert value from %s to %s without time zone usage",
                         type1, type2),
 -                errhint("Use *_tz() function for timezone support.")));
 +                errhint("Use *_tz() function for time zone support.")));
  }
  
  /* Convert time datum to timetz datum */
          
     ereport(ERROR,
             (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 -            errmsg("opclass options info is absent in function call context")));
 +            errmsg("operator class options info is absent in function call context")));
  
     return NULL;
  }
                     gettext_noop("Sets the minimum execution time above which "
                          "a sample of statements will be logged."
                          " Sampling is determined by log_statement_sample_rate."),
 -           gettext_noop("Zero log a sample of all queries. -1 turns this feature off."),
 +           gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
             GUC_UNIT_MS
         },
         &log_min_duration_sample,
   
     {
         {"restore_command", PGC_POSTMASTER, WAL_ARCHIVE_RECOVERY,
 -           gettext_noop("Sets the shell command that will retrieve an archived WAL file."),
 +           gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
             NULL
         },
         &recoveryRestoreCommand,
                     if (BufFileSeekBlock(accessor->read_file, read_page) != 0)
                 ereport(ERROR,
                         (errcode_for_file_access(),
 -                        errmsg("could not seek block %u in shared tuplestore temporary file",
 +                        errmsg("could not seek to block %u in shared tuplestore temporary file",
                                 read_page)));
             nread = BufFileRead(accessor->read_file, &chunk_header,
                                 STS_CHUNK_HEADER_SIZE);
          
             /* It's not a field we recognize. */
             json_manifest_parse_failure(parse->context,
 -                                       "unknown toplevel field");
 +                                       "unrecognized top-level field");
             break;
  
         case JM_EXPECT_THIS_FILE_FIELD:
                  parse->wal_range_field = JMWRF_END_LSN;
             else
                 json_manifest_parse_failure(parse->context,
 -                                           "unexpected wal range field");
 +                                           "unexpected WAL range field");
             parse->state = JM_EXPECT_THIS_WAL_RANGE_VALUE;
             break;
  
   
     /* Pathname and size are required. */
     if (parse->pathname == NULL && parse->encoded_pathname == NULL)
 -       json_manifest_parse_failure(parse->context, "missing pathname");
 +       json_manifest_parse_failure(parse->context, "missing path name");
     if (parse->pathname != NULL && parse->encoded_pathname != NULL)
         json_manifest_parse_failure(parse->context,
 -                                   "both pathname and encoded pathname");
 +                                   "both path name and encoded path name");
     if (parse->size == NULL)
         json_manifest_parse_failure(parse->context, "missing size");
     if (parse->algorithm == NULL && parse->checksum != NULL)
                                parse->encoded_pathname,
                               raw_length))
             json_manifest_parse_failure(parse->context,
 -                                       "unable to decode filename");
 +                                       "could not decode file name");
         parse->pathname[raw_length] = '\0';
         pfree(parse->encoded_pathname);
         parse->encoded_pathname = NULL;
                                      "timeline is not an integer");
     if (!parse_xlogrecptr(&start_lsn, parse->start_lsn))
         json_manifest_parse_failure(parse->context,
 -                                   "unable to parse start LSN");
 +                                   "could not parse start LSN");
     if (!parse_xlogrecptr(&end_lsn, parse->end_lsn))
         json_manifest_parse_failure(parse->context,
 -                                   "unable to parse end LSN");
 +                                   "could not parse end LSN");
  
     /* Invoke the callback with the details we've gathered. */
     context->perwalrange_cb(context, tli, start_lsn, end_lsn);
             /* Make a new entry in the hash table for this file. */
     m = manifest_files_insert(ht, pathname, &found);
     if (found)
 -       report_fatal_error("duplicate pathname in backup manifest: \"%s\"",
 +       report_fatal_error("duplicate path name in backup manifest: \"%s\"",
                            pathname);
  
     /* Initialize the entry. */
          {"PostgreSQL-Backup-Manifest-Version": 1, "Files": true}
  EOM
  
 -test_parse_error('unknown toplevel field', <<EOM);
 +test_parse_error('unrecognized top-level field', <<EOM);
  {"PostgreSQL-Backup-Manifest-Version": 1, "Oops": 1}
  EOM
  
   {"PostgreSQL-Backup-Manifest-Version": 1, "Files": {}}
  EOM
  
 -test_parse_error('missing pathname', <<EOM);
 +test_parse_error('missing path name', <<EOM);
  {"PostgreSQL-Backup-Manifest-Version": 1, "Files": [{}]}
  EOM
  
 -test_parse_error('both pathname and encoded pathname', <<EOM);
 +test_parse_error('both path name and encoded path name', <<EOM);
  {"PostgreSQL-Backup-Manifest-Version": 1, "Files": [
      {"Path": "x", "Encoded-Path": "1234"}
  ]}
   ]}
  EOM
  
 -test_parse_error('unable to decode filename', <<EOM);
 +test_parse_error('could not decode file name', <<EOM);
  {"PostgreSQL-Backup-Manifest-Version": 1, "Files": [
      {"Encoded-Path": "123", "Size": 0}
  ]}
  EOM
  
 -test_fatal_error('duplicate pathname in backup manifest', <<EOM);
 +test_fatal_error('duplicate path name in backup manifest', <<EOM);
  {"PostgreSQL-Backup-Manifest-Version": 1, "Files": [
      {"Path": "x", "Size": 0},
      {"Path": "x", "Size": 0}
   ]}
  EOM
  
 -test_parse_error('unexpected wal range field', <<EOM);
 +test_parse_error('unexpected WAL range field', <<EOM);
  {"PostgreSQL-Backup-Manifest-Version": 1, "WAL-Ranges": [
      {"Oops": 1}
  ]}
   ]}
  EOM
  
 -test_parse_error('unable to parse start LSN', <<EOM);
 +test_parse_error('could not parse start LSN', <<EOM);
  {"PostgreSQL-Backup-Manifest-Version": 1, "WAL-Ranges": [
      {"Timeline": 1, "Start-LSN": "oops", "End-LSN": "0/0"}
  ]}
  EOM
  
 -test_parse_error('unable to parse end LSN', <<EOM);
 +test_parse_error('could not parse end LSN', <<EOM);
  {"PostgreSQL-Backup-Manifest-Version": 1, "WAL-Ranges": [
      {"Timeline": 1, "Start-LSN": "0/0", "End-LSN": "oops"}
  ]}
             [],
     [
         qr{ERROR:  invalid input syntax for type json},
 -       qr{(?!extended query with parameters)}
 +       qr{(?!unnamed portal with parameters)}
     ],
     'server parameter logging',
     {
      [],
     [
         qr{ERROR:  division by zero},
 -       qr{CONTEXT:  extended query with parameters: \$1 = '1', \$2 = NULL}
 +       qr{CONTEXT:  unnamed portal with parameters: \$1 = '1', \$2 = NULL}
     ],
     'server parameter logging',
     {
      [],
     [
         qr{ERROR:  invalid input syntax for type json},
 -       qr[CONTEXT:  JSON data, line 1: \{ invalid\.\.\.[\r\n]+extended query with parameters: \$1 = '\{ invalid ', \$2 = '''Valame Dios!'' dijo Sancho; ''no le dije yo a vuestra merced que \.\.\.']m
 +       qr[CONTEXT:  JSON data, line 1: \{ invalid\.\.\.[\r\n]+unnamed portal with parameters: \$1 = '\{ invalid ', \$2 = '''Valame Dios!'' dijo Sancho; ''no le dije yo a vuestra merced que \.\.\.']m
     ],
     'server parameter logging',
     {
      [],
     [
         qr{ERROR:  division by zero},
 -       qr{CONTEXT:  extended query with parameters: \$1 = '1', \$2 = NULL}
 +       qr{CONTEXT:  unnamed portal with parameters: \$1 = '1', \$2 = NULL}
     ],
     'server parameter logging',
     {
      [],
     [
         qr{ERROR:  invalid input syntax for type json},
 -       qr[CONTEXT:  JSON data, line 1: \{ invalid\.\.\.[\r\n]+extended query with parameters: \$1 = '\{ invalid ', \$2 = '''Valame Dios!'' dijo Sancho; ''no le dije yo a vuestra merced que mirase bien lo que hacia\?']m
 +       qr[CONTEXT:  JSON data, line 1: \{ invalid\.\.\.[\r\n]+unnamed portal with parameters: \$1 = '\{ invalid ', \$2 = '''Valame Dios!'' dijo Sancho; ''no le dije yo a vuestra merced que mirase bien lo que hacia\?']m
     ],
     'server parameter logging',
     {
                 }
         if (vacopts.full)
         {
 -           pg_log_error("cannot use the \"%s\" option when performing full",
 +           pg_log_error("cannot use the \"%s\" option when performing full vacuum",
                          "parallel");
             exit(1);
         }
                                                  xlogfname, NULL);
     if (xlogRestoreCmd == NULL)
     {
 -       pg_log_fatal("could not use restore_command with %%r alias");
 +       pg_log_fatal("cannot use restore_command with %%r placeholder");
         exit(1);
     }
  
       */
     if (wait_result_is_any_signal(rc, true))
     {
 -       pg_log_fatal("restore_command failed due to the signal: %s",
 +       pg_log_fatal("restore_command failed: %s",
                      wait_result_to_str(rc));
         exit(1);
     }
          $output = run_sql_command('alter table atacc1 alter test_a set not null;');
  ok(!is_table_verified($output), 'with constraint will not scan table');
  ok( $output =~
 -     m/existing constraints on column "atacc1"."test_a" are sufficient to prove that it does not contain nulls/,
 +     m/existing constraints on column "atacc1.test_a" are sufficient to prove that it does not contain nulls/,
     'test_a proved by constraints');
  
  run_sql_command('alter table atacc1 alter test_a drop not null;');
   ok(is_table_verified($output), 'table was scanned');
  # we may miss debug message for test_a constraint because we need verify table due test_b
  ok( !(  $output =~
 -       m/existing constraints on column "atacc1"."test_b" are sufficient to prove that it does not contain nulls/
 +       m/existing constraints on column "atacc1.test_b" are sufficient to prove that it does not contain nulls/
     ),
     'test_b not proved by wrong constraints');
  run_sql_command(
   );
  ok(!is_table_verified($output), 'table was not scanned for both columns');
  ok( $output =~
 -     m/existing constraints on column "atacc1"."test_a" are sufficient to prove that it does not contain nulls/,
 +     m/existing constraints on column "atacc1.test_a" are sufficient to prove that it does not contain nulls/,
     'test_a proved by constraints');
  ok( $output =~
 -     m/existing constraints on column "atacc1"."test_b" are sufficient to prove that it does not contain nulls/,
 +     m/existing constraints on column "atacc1.test_b" are sufficient to prove that it does not contain nulls/,
     'test_b proved by constraints');
  run_sql_command('drop table atacc1;');
  
          ALTER OPERATOR FAMILY alt_opf19 USING btree ADD FUNCTION 5 test_opclass_options_func(internal, text[], bool);
  ERROR:  function test_opclass_options_func(internal, text[], boolean) does not exist
  ALTER OPERATOR FAMILY alt_opf19 USING btree ADD FUNCTION 5 (int4) btint42cmp(int4, int2);
 -ERROR:  invalid opclass options parsing function
 -HINT:  Valid signature of opclass options parsing function is '(internal) RETURNS void'.
 +ERROR:  invalid operator class options parsing function
 +HINT:  Valid signature of operator class options parsing function is (internal) RETURNS void.
  ALTER OPERATOR FAMILY alt_opf19 USING btree ADD FUNCTION 5 (int4, int2) btint42cmp(int4, int2);
 -ERROR:  left and right associated data types for opclass options parsing functions must match
 +ERROR:  left and right associated data types for operator class options parsing functions must match
  ALTER OPERATOR FAMILY alt_opf19 USING btree ADD FUNCTION 5 (int4) test_opclass_options_func(internal); -- Ok
  ALTER OPERATOR FAMILY alt_opf19 USING btree DROP FUNCTION 5 (int4, int4);
  DROP OPERATOR FAMILY alt_opf19 USING btree;
          select jsonb_path_query(
     '["2017-03-10", "2017-03-11", "2017-03-09", "12:34:56", "01:02:03 +04", "2017-03-10 00:00:00", "2017-03-10 12:34:56", "2017-03-10 01:02:03 +04", "2017-03-10 03:00:00 +03"]',
     '$[*].datetime() ? (@ == "10.03.2017".datetime("dd.mm.yyyy"))');
 -ERROR:  cannot convert value from date to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from date to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["2017-03-10", "2017-03-11", "2017-03-09", "12:34:56", "01:02:03 +04", "2017-03-10 00:00:00", "2017-03-10 12:34:56", "2017-03-10 01:02:03 +04", "2017-03-10 03:00:00 +03"]',
     '$[*].datetime() ? (@ >= "10.03.2017".datetime("dd.mm.yyyy"))');
 -ERROR:  cannot convert value from date to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from date to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["2017-03-10", "2017-03-11", "2017-03-09", "12:34:56", "01:02:03 +04", "2017-03-10 00:00:00", "2017-03-10 12:34:56", "2017-03-10 01:02:03 +04", "2017-03-10 03:00:00 +03"]',
     '$[*].datetime() ? (@ <  "10.03.2017".datetime("dd.mm.yyyy"))');
 -ERROR:  cannot convert value from date to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from date to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query_tz(
     '["2017-03-10", "2017-03-11", "2017-03-09", "12:34:56", "01:02:03 +04", "2017-03-10 00:00:00", "2017-03-10 12:34:56", "2017-03-10 01:02:03 +04", "2017-03-10 03:00:00 +03"]',
     '$[*].datetime() ? (@ == "10.03.2017".datetime("dd.mm.yyyy"))');
   select jsonb_path_query(
     '["12:34:00", "12:35:00", "12:36:00", "12:35:00 +00", "12:35:00 +01", "13:35:00 +01", "2017-03-10", "2017-03-10 12:35:00", "2017-03-10 12:35:00 +01"]',
     '$[*].datetime() ? (@ == "12:35".datetime("HH24:MI"))');
 -ERROR:  cannot convert value from time to timetz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from time to timetz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["12:34:00", "12:35:00", "12:36:00", "12:35:00 +00", "12:35:00 +01", "13:35:00 +01", "2017-03-10", "2017-03-10 12:35:00", "2017-03-10 12:35:00 +01"]',
     '$[*].datetime() ? (@ >= "12:35".datetime("HH24:MI"))');
 -ERROR:  cannot convert value from time to timetz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from time to timetz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["12:34:00", "12:35:00", "12:36:00", "12:35:00 +00", "12:35:00 +01", "13:35:00 +01", "2017-03-10", "2017-03-10 12:35:00", "2017-03-10 12:35:00 +01"]',
     '$[*].datetime() ? (@ <  "12:35".datetime("HH24:MI"))');
 -ERROR:  cannot convert value from time to timetz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from time to timetz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query_tz(
     '["12:34:00", "12:35:00", "12:36:00", "12:35:00 +00", "12:35:00 +01", "13:35:00 +01", "2017-03-10", "2017-03-10 12:35:00", "2017-03-10 12:35:00 +01"]',
     '$[*].datetime() ? (@ == "12:35".datetime("HH24:MI"))');
   select jsonb_path_query(
     '["12:34:00 +01", "12:35:00 +01", "12:36:00 +01", "12:35:00 +02", "12:35:00 -02", "10:35:00", "11:35:00", "12:35:00", "2017-03-10", "2017-03-10 12:35:00", "2017-03-10 12:35:00 +1"]',
     '$[*].datetime() ? (@ == "12:35 +1".datetime("HH24:MI TZH"))');
 -ERROR:  cannot convert value from time to timetz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from time to timetz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["12:34:00 +01", "12:35:00 +01", "12:36:00 +01", "12:35:00 +02", "12:35:00 -02", "10:35:00", "11:35:00", "12:35:00", "2017-03-10", "2017-03-10 12:35:00", "2017-03-10 12:35:00 +1"]',
     '$[*].datetime() ? (@ >= "12:35 +1".datetime("HH24:MI TZH"))');
 -ERROR:  cannot convert value from time to timetz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from time to timetz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["12:34:00 +01", "12:35:00 +01", "12:36:00 +01", "12:35:00 +02", "12:35:00 -02", "10:35:00", "11:35:00", "12:35:00", "2017-03-10", "2017-03-10 12:35:00", "2017-03-10 12:35:00 +1"]',
     '$[*].datetime() ? (@ <  "12:35 +1".datetime("HH24:MI TZH"))');
 -ERROR:  cannot convert value from time to timetz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from time to timetz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query_tz(
     '["12:34:00 +01", "12:35:00 +01", "12:36:00 +01", "12:35:00 +02", "12:35:00 -02", "10:35:00", "11:35:00", "12:35:00", "2017-03-10", "2017-03-10 12:35:00", "2017-03-10 12:35:00 +1"]',
     '$[*].datetime() ? (@ == "12:35 +1".datetime("HH24:MI TZH"))');
   select jsonb_path_query(
     '["2017-03-10 12:34:00", "2017-03-10 12:35:00", "2017-03-10 12:36:00", "2017-03-10 12:35:00 +01", "2017-03-10 13:35:00 +01", "2017-03-10 12:35:00 -01", "2017-03-10", "2017-03-11", "12:34:56", "12:34:56 +01"]',
     '$[*].datetime() ? (@ == "10.03.2017 12:35".datetime("dd.mm.yyyy HH24:MI"))');
 -ERROR:  cannot convert value from timestamp to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from timestamp to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["2017-03-10 12:34:00", "2017-03-10 12:35:00", "2017-03-10 12:36:00", "2017-03-10 12:35:00 +01", "2017-03-10 13:35:00 +01", "2017-03-10 12:35:00 -01", "2017-03-10", "2017-03-11", "12:34:56", "12:34:56 +01"]',
     '$[*].datetime() ? (@ >= "10.03.2017 12:35".datetime("dd.mm.yyyy HH24:MI"))');
 -ERROR:  cannot convert value from timestamp to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from timestamp to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["2017-03-10 12:34:00", "2017-03-10 12:35:00", "2017-03-10 12:36:00", "2017-03-10 12:35:00 +01", "2017-03-10 13:35:00 +01", "2017-03-10 12:35:00 -01", "2017-03-10", "2017-03-11", "12:34:56", "12:34:56 +01"]',
     '$[*].datetime() ? (@ < "10.03.2017 12:35".datetime("dd.mm.yyyy HH24:MI"))');
 -ERROR:  cannot convert value from timestamp to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from timestamp to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query_tz(
     '["2017-03-10 12:34:00", "2017-03-10 12:35:00", "2017-03-10 12:36:00", "2017-03-10 12:35:00 +01", "2017-03-10 13:35:00 +01", "2017-03-10 12:35:00 -01", "2017-03-10", "2017-03-11", "12:34:56", "12:34:56 +01"]',
     '$[*].datetime() ? (@ == "10.03.2017 12:35".datetime("dd.mm.yyyy HH24:MI"))');
   select jsonb_path_query(
     '["2017-03-10 12:34:00 +01", "2017-03-10 12:35:00 +01", "2017-03-10 12:36:00 +01", "2017-03-10 12:35:00 +02", "2017-03-10 12:35:00 -02", "2017-03-10 10:35:00", "2017-03-10 11:35:00", "2017-03-10 12:35:00", "2017-03-10", "2017-03-11", "12:34:56", "12:34:56 +01"]',
     '$[*].datetime() ? (@ == "10.03.2017 12:35 +1".datetime("dd.mm.yyyy HH24:MI TZH"))');
 -ERROR:  cannot convert value from timestamp to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from timestamp to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["2017-03-10 12:34:00 +01", "2017-03-10 12:35:00 +01", "2017-03-10 12:36:00 +01", "2017-03-10 12:35:00 +02", "2017-03-10 12:35:00 -02", "2017-03-10 10:35:00", "2017-03-10 11:35:00", "2017-03-10 12:35:00", "2017-03-10", "2017-03-11", "12:34:56", "12:34:56 +01"]',
     '$[*].datetime() ? (@ >= "10.03.2017 12:35 +1".datetime("dd.mm.yyyy HH24:MI TZH"))');
 -ERROR:  cannot convert value from timestamp to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from timestamp to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query(
     '["2017-03-10 12:34:00 +01", "2017-03-10 12:35:00 +01", "2017-03-10 12:36:00 +01", "2017-03-10 12:35:00 +02", "2017-03-10 12:35:00 -02", "2017-03-10 10:35:00", "2017-03-10 11:35:00", "2017-03-10 12:35:00", "2017-03-10", "2017-03-11", "12:34:56", "12:34:56 +01"]',
     '$[*].datetime() ? (@ < "10.03.2017 12:35 +1".datetime("dd.mm.yyyy HH24:MI TZH"))');
 -ERROR:  cannot convert value from timestamp to timestamptz without timezone usage
 -HINT:  Use *_tz() function for timezone support.
 +ERROR:  cannot convert value from timestamp to timestamptz without time zone usage
 +HINT:  Use *_tz() function for time zone support.
  select jsonb_path_query_tz(
     '["2017-03-10 12:34:00 +01", "2017-03-10 12:35:00 +01", "2017-03-10 12:36:00 +01", "2017-03-10 12:35:00 +02", "2017-03-10 12:35:00 -02", "2017-03-10 10:35:00", "2017-03-10 11:35:00", "2017-03-10 12:35:00", "2017-03-10", "2017-03-11", "12:34:56", "12:34:56 +01"]',
     '$[*].datetime() ? (@ == "10.03.2017 12:35 +1".datetime("dd.mm.yyyy HH24:MI TZH"))');
          SELECT ''::text AS two, unique1, unique2, stringu1
         FROM onek WHERE unique1 > 50
         FETCH FIRST 2 ROW WITH TIES;
 -ERROR:  WITH TIES options can not be specified without ORDER BY clause
 +ERROR:  WITH TIES cannot be specified without ORDER BY clause
  -- test ruleutils
  CREATE VIEW limit_thousand_v_1 AS SELECT thousand FROM onek WHERE thousand < 995
         ORDER BY thousand FETCH FIRST 5 ROWS WITH TIES OFFSET 10;
   
  CREATE VIEW limit_thousand_v_3 AS SELECT thousand FROM onek WHERE thousand < 995
         ORDER BY thousand FETCH FIRST NULL ROWS WITH TIES;      -- fails
 -ERROR:  row count cannot be NULL in FETCH FIRST ... WITH TIES clause
 +ERROR:  row count cannot be null in FETCH FIRST ... WITH TIES clause
  CREATE VIEW limit_thousand_v_3 AS SELECT thousand FROM onek WHERE thousand < 995
         ORDER BY thousand FETCH FIRST (NULL+1) ROWS WITH TIES;
  \d+ limit_thousand_v_3