Return-Path: X-Original-To: apmail-tajo-dev-archive@minotaur.apache.org Delivered-To: apmail-tajo-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3BD0E107FA for ; Sat, 4 Jan 2014 12:58:21 +0000 (UTC) Received: (qmail 13822 invoked by uid 500); 4 Jan 2014 12:58:17 -0000 Delivered-To: apmail-tajo-dev-archive@tajo.apache.org Received: (qmail 13776 invoked by uid 500); 4 Jan 2014 12:58:15 -0000 Mailing-List: contact dev-help@tajo.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tajo.incubator.apache.org Delivered-To: mailing list dev@tajo.incubator.apache.org Received: (qmail 13766 invoked by uid 99); 4 Jan 2014 12:58:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 04 Jan 2014 12:58:12 +0000 X-ASF-Spam-Status: No, hits=-2000.4 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Sat, 04 Jan 2014 12:58:11 +0000 Received: (qmail 13756 invoked by uid 99); 4 Jan 2014 12:57:50 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 04 Jan 2014 12:57:50 +0000 Date: Sat, 4 Jan 2014 12:57:50 +0000 (UTC) From: "Hyunsik Choi (JIRA)" To: dev@tajo.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (TAJO-469) CTAS with no column definition will get a NPE MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/TAJO-469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Hyunsik Choi updated TAJO-469: ------------------------------ Fix Version/s: 0.8-incubating Status: Patch Available (was: Open) > CTAS with no column definition will get a NPE > ---------------------------------------------- > > Key: TAJO-469 > URL: https://issues.apache.org/jira/browse/TAJO-469 > Project: Tajo > Issue Type: Bug > Components: planner/optimizer > Affects Versions: 0.8-incubating > Reporter: Min Zhou > Assignee: Min Zhou > Fix For: 0.8-incubating > > Attachments: TAJO-469.diff > > > If you do a CTAS like this way > {noformat} > create table tbl partition by column(key float8) as select l_orderkey, l_partkey, l_quantity as key from lineitem; > {noformat} > You will get an NPE because that expr.getTableElements() returns null and this null value later be iterated. > {noformat} > 2013-12-30 23:28:55,582 ERROR master.GlobalEngine (GlobalEngine.java:executeQuery(177)) - > Stack Trace: > java.lang.NullPointerException > at org.apache.tajo.engine.planner.LogicalPlanner.convertTableElementsSchema(LogicalPlanner.java:956) > at org.apache.tajo.engine.planner.LogicalPlanner.convertTableElementsPartition(LogicalPlanner.java:844) > at org.apache.tajo.engine.planner.LogicalPlanner.visitCreateTable(LogicalPlanner.java:785) > at org.apache.tajo.engine.planner.LogicalPlanner.visitCreateTable(LogicalPlanner.java:81) > at org.apache.tajo.engine.planner.BaseAlgebraVisitor.visit(BaseAlgebraVisitor.java:98) > at org.apache.tajo.engine.planner.LogicalPlanner.createPlan(LogicalPlanner.java:114) > at org.apache.tajo.master.GlobalEngine.createLogicalPlan(GlobalEngine.java:225) > at org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:138) > at org.apache.tajo.master.TajoMasterClientService$TajoMasterClientProtocolServiceHandler.submitQuery(TajoMasterClientService.java:134) > at org.apache.tajo.ipc.TajoMasterClientProtocol$TajoMasterClientProtocolService$2.callBlockingMethod(TajoMasterClientProtocol.java:257) > at org.apache.tajo.rpc.BlockingRpcServer$ServerHandler.messageReceived(BlockingRpcServer.java:91) > at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) > at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) > at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) > at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) > at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70) > at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) > at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) > at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) > at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) > at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) > at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) > at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) > at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) > at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) > at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) > at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) > at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) > at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109) > at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) > at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) > at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) > at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) > at java.lang.Thread.run(Thread.java:680) > {noformat} > I think this is caused by one of the different between create table DDL and CTAS. We can legally create a table by CTAS without define each columns' schema, just can use the output schema of select clause. But, create table DDL can't do it. -- This message was sent by Atlassian JIRA (v6.1.5#6160)