Signed-off-by: Lucas Jeffrey <[email protected]>
---
 src/backend/commands/trigger.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 1d10fb1c13c..fe447f6df68 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -899,6 +899,7 @@ CreateTriggerFiringOn(const CreateTrigStmt *stmt, const 
char *queryString,
                char       *args;
                int                     nargs = list_length(stmt->args);
                int                     len = 0;
+               char       *d;
 
                Assert(nargs >= 0);
                if (nargs > PG_INT16_MAX)
@@ -922,10 +923,10 @@ CreateTriggerFiringOn(const CreateTrigStmt *stmt, const 
char *queryString,
                }
                args = (char *) palloc(len + 1);
                args[0] = '\0';
+               d = args;
                foreach(le, stmt->args)
                {
                        char       *s = strVal(lfirst(le));
-                       char       *d = args + strlen(args);
 
                        while (*s)
                        {
@@ -934,6 +935,7 @@ CreateTriggerFiringOn(const CreateTrigStmt *stmt, const 
char *queryString,
                                *d++ = *s++;
                        }
                        strcpy(d, "\\000");
+                       d += 4;
                }
                values[Anum_pg_trigger_tgnargs - 1] = Int16GetDatum(nargs);
                values[Anum_pg_trigger_tgargs - 1] = 
DirectFunctionCall1(byteain,
-- 
2.43.0



Reply via email to