HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/mysql-postgres/pgloader-3.6.2/src/utils/reject.lisp
;;;
;;; Implement bad row reject processing
;;;
(in-package :pgloader.monitor)

;;;
;;; When a batch has been refused by PostgreSQL with a data-exception, that
;;; means it contains non-conforming data. Log the error message in a log
;;; file and the erroneous data in a rejected data file for further
;;; processing.
;;;
(defun %process-bad-row (table condition row)
  "Add the row to the reject file, in PostgreSQL COPY TEXT format"
  (let* ((data  (pgtable-reject-data table))
         (logs  (pgtable-reject-logs table)))

    ;; first log the rejected data
    (with-open-file (reject-data-stream data
                                        :direction :output
                                        :element-type '(unsigned-byte 8)
                                        :if-exists :append
                                        :if-does-not-exist :create)
      ;; the row has already been processed when we get here
      (write-sequence row reject-data-stream)
      (write-byte #. (char-code #\Newline) reject-data-stream))

    ;; now log the condition signaled to reject the data
    (with-open-file (reject-log-stream logs
                                       :direction :output
                                       :if-exists :append
                                       :if-does-not-exist :create
                                       :external-format :utf-8)
      ;; the row has already been processed when we get here
      (format reject-log-stream "~a~%" condition))))