Date: Tue, 2 Aug 2005 14:40:08 -0500
Reply-To: PuddingDotManAtGmailDotCom@listserv.cc.uga.edu
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Pudding Man <pudding.man@GMAIL.COM>
Subject: Re: New SQL error in v9
In-Reply-To: <200508021449.j72EncRN029028@listserv.cc.uga.edu>
Content-Type: text/plain; charset=ISO-8859-1
On 8/2/05, Jack Hamilton <kd6ttl@yahoo.com> wrote:
> Pudding Man [mailto:pudding.man@gmail.com] wrote:
>
> > Jack,
> >
> > If it ran without a warning in V8 and produces one with V9,
> > I would decline to defend SAS's decision. In fact, I suspect
> > it might not have been a decision, but rather perhaps just a
> > by-product of re-engineering some SQL modules.
>
> Tech Support tells me it's a deliberate decision.
OK.
1st level support? 2nd level? 3rd? I suppose they
didn't mention a justification for such change ...
> > With a bit of imagination, I could likely think of
> > situations where you might want to include a constant in the
> > output dataset. I am hard pressed to imagine why you'd want
> > to include such constant in the GROUP BY.
>
> I didn't write the code, I only inherited it, and I probably wouldn't write
> it that way, but maybe I would under some circumstances.
>
> In SAS/Intrnet, for example, it might be easier to use a constant as a
> placeholder which is replaced by a table or calculated value under certain
> circumstances than to come up wioth different clauses each time. That's
> more likely to happen with htmSQL, I think.
Can speak neither to SAS/Intrnet nor htmSQL ...
> > You get the same output dataset when CONSTANT does not
> > appear in the GROUP BY?
>
> Yes.
This suggests that it is a programming issue? As a matter of
expediency and tradition, such an issue normally falls on
your (and not SI's) side of the fence?
Not that I disagree with your position. If it produced
a 0 rc in V8, I'm unaware of any reason it should produce any
more than an "INFO" message (and a 0 rc) in V9.
Your (new ?) definition of ABEND is very different from
po' mine ... <g>
Skoal,
Puddin'
*****************************************************************
*** Puddin' Man PuddingDotMan at GmailDotCom **
*****************************************************************;
> > On 8/1/05, Jack Hamilton <jfh@stanfordalumni.org> wrote:
> > > We have some legacy programs which look like this:
> > >
> > > =====
> > > proc sql;
> > > create table test as
> > > select distinct country, region, product, sum(actual)
> > as actual,
> > > 1 as constant
> > > from sashelp.prdsale
> > > group by country, region, product, constant;
> > > quit;
> > > =====
> > >
> > > The interesting feature is the GROUP BY on CONSTANT, which is a
> > > constant.
> > >
> > > In version 8, this ran with no problems.
> > >
> > > In version 9, this causes the message
> > >
> > > +++++
> > > WARNING: At least one nonessential grouping column
> > reference has been
> > > removed from a GROUP BY's reference list.
> > > +++++
> > >
> > > Since it's a warning message, not an INFO message, it sets
> > the return
> > > code to non-zero, which is a Bad Thing.
> > >
> > > I will agree that this is not optimal coding, but it's not
> > ambiguous.
> > > In general, SAS doesn't follow the "anything which is not
> > compulsory is
> > > forbidden" rule, so making this a WARNING level message is really a
> > > surprise.
> > >
> > > Would anyone care to defend SAS's decision?
> > >
> >
>
|