Repository: incubator-hawq
Updated Branches:
  refs/heads/master f988a7120 -> 0617aa214


HAWQ-418. Fix core dump when COPY data into table without any column


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/0617aa21
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/0617aa21
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/0617aa21

Branch: refs/heads/master
Commit: 0617aa21463b23330bb439b87128125fbb845971
Parents: f988a71
Author: Ruilong Huo <r...@pivotal.io>
Authored: Tue Feb 16 22:24:09 2016 -0800
Committer: Ruilong Huo <r...@pivotal.io>
Committed: Thu Feb 18 17:57:34 2016 -0800

----------------------------------------------------------------------
 src/backend/commands/copy.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/0617aa21/src/backend/commands/copy.c
----------------------------------------------------------------------
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index acf303c..35a2c0d 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -5544,6 +5544,12 @@ CopyReadAttributesCSV(CopyState cstate, bool *nulls, int 
*attr_offsets,
                                                 errmsg("extra data after last 
expected column"),
                                                 errOmitLocation(true)));
 
+                       if(cur == NULL)
+                               ereport(ERROR,
+                                               
(errcode(ERRCODE_BAD_COPY_FILE_FORMAT),
+                                                errmsg("extra data after last 
expected column"),
+                                                errOmitLocation(true)));
+
                        if (in_quote)
                        {
                                /* next c will usually be LF, but it could also 
be a quote
@@ -5595,6 +5601,12 @@ CopyReadAttributesCSV(CopyState cstate, bool *nulls, int 
*attr_offsets,
                        /* check whether raw input matched null marker */
                        input_len = end_cursor - start_cursor;
 
+                       if (cur == NULL)
+                               ereport(ERROR,
+                                               
(errcode(ERRCODE_BAD_COPY_FILE_FORMAT),
+                                                errmsg("extra data after last 
expected column"),
+                                                errOmitLocation(true)));
+
                        if(num_phys_attrs > 0)
                        {
                                if (!saw_quote && input_len == 
cstate->null_print_len &&

Reply via email to