On Mon, Jul 23, 2012 at 8:54 AM, Alan Gates <[email protected]> wrote:
> The issue before pig 0.10 is that the parser won't allow booleans in
> certain locations. For example,
>
> A = load 'foo';
> B = foreach A generate mybool; -- where mybool is a boolean
>
> will fail. Half baked supported is worse than no support. In Pig 0.10 I
> think your changes make sense. We could declare that HCat 0.5 works wit
> Pig 0.10 and then make these changes on HCat trunk.
>
>
Cool thanks for clearing that up. I like the idea of bumping the required
pig version and simply adding boolean support. I think this means we'll
have some integration challenges with mismatched antlr versions, but we'll
have to address it at some point.
--travis
> Alan.
>
> On Jul 20, 2012, at 2:06 PM, Travis Crawford wrote:
>
> > Hey all -
> >
> > I'm taking a look at boolean support and started by making just this
> simple
> > change. Basically just remove the bits that throw exceptions for boolean
> > fields.
> >
> > Using pig 0.9 I ran a simple query against a table with booleans and it
> > worked just fine. DataType.BOOLEAN already exists (even in pig 0.8),
> > "describe" showed the fields as boolean, and dump printed out true/false
> as
> > expected.
> >
> > Am I missing something? The user seems better off by not throwing an
> > exception here because if their pig can handle booleans their query runs.
> >
> >
> > TW-MBP13-TCrawford:hcatalog travis$ git diff
> > diff --git
> >
> a/hcatalog-pig-adapter/src/main/java/org/apache/hcatalog/pig/PigHCatUtil.java
> >
> b/hcatalog-pig-adapter/src/main/java/org/apache/hcatalog/pig/PigHCatUtil.java
> > index 696081f..fe686cd 100644
> > ---
> >
> a/hcatalog-pig-adapter/src/main/java/org/apache/hcatalog/pig/PigHCatUtil.java
> > +++
> >
> b/hcatalog-pig-adapter/src/main/java/org/apache/hcatalog/pig/PigHCatUtil.java
> > @@ -298,9 +298,7 @@ public class PigHCatUtil {
> > }
> >
> > if (type == Type.BOOLEAN){
> > *- errMsg = "HCatalog column type 'BOOLEAN' is not supported in " +
> > - "Pig as a column type";
> > - throw new PigException(errMsg, PIG_EXCEPTION_CODE);
> > + return DataType.BOOLEAN;
> > * }
> >
> > errMsg = "HCatalog column type '"+ type.toString() +"' is not
> > supported in Pig as a column type";
> > @@ -409,7 +407,6 @@ public class PigHCatUtil {
> > // We don't do type promotion/demotion.
> > case SMALLINT:
> > case TINYINT:
> > *- case BOOLEAN:
> > * throw new PigException("Incompatible type found in hcat table
> > schema: "+hcatField, PigHCatUtil.PIG_EXCEPTION_CODE);
> > case ARRAY:
> >
> > validateHCatSchemaFollowsPigRules(hcatField.getArrayElementSchema());
> > TW-MBP13-TCrawford:hcatalog travis$
> >
> > --travis
>
>