diff --git a/language-pig.cabal b/language-pig.cabal
--- a/language-pig.cabal
+++ b/language-pig.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                language-pig
-version:             0.3.0.0
+version:             0.3.0.1
 synopsis:            Pig parser in haskell.
 description:         Parser and pretty printer for the Apache Pig scripting language (http://pig.apache.org/). The current version is implemented using Parsec parser combinators.
 -- description:         
diff --git a/src/Language/Pig/Parser/AST.hs b/src/Language/Pig/Parser/AST.hs
--- a/src/Language/Pig/Parser/AST.hs
+++ b/src/Language/Pig/Parser/AST.hs
@@ -42,6 +42,7 @@
                | ExpressionTransform Expression Alias
                | FunctionTransform Function Alias
                | EnvTransform Scalar Alias
+               | IdentityTransform Alias
                DERIVE
 
 data Join = Join String String
diff --git a/src/Language/Pig/Parser/Parser.hs b/src/Language/Pig/Parser/Parser.hs
--- a/src/Language/Pig/Parser/Parser.hs
+++ b/src/Language/Pig/Parser/Parser.hs
@@ -247,7 +247,8 @@
          <|> flattenTransform
          <|> tupleFieldGlob
          <|> expressionTransform
-         <|> functionTransform
+         <|> try(functionTransform)
+         <|> identityTransform
          <|> envTransform
 
 flattenTransform :: Parser Transform
@@ -280,6 +281,11 @@
                   pigQuotedString String <*>
                   (reserved "AS" *>
                    (Identifier <$> identifier))
+
+-- field is just used as-is from input file
+identityTransform :: Parser Transform
+identityTransform = IdentityTransform <$>
+                      (Identifier <$> pigIdentifier)
 
 -- general expression:
 -- fieldExpression or literal or function or binary operation (+-*/%) or bincond (?:)
diff --git a/test/Language/Pig/Parser/Test.hs b/test/Language/Pig/Parser/Test.hs
--- a/test/Language/Pig/Parser/Test.hs
+++ b/test/Language/Pig/Parser/Test.hs
@@ -27,6 +27,9 @@
 
    , testCase "foreach stmt with ternary if-then-else" (testStmt "users = FOREACH users GENERATE *, (cohort <= 4 ? '04' : '59') AS herd;"
                                                                  "Seq [Assignment (Identifier \"users\") (ForeachClause (Identifier \"users\") (GenBlock [TupleFieldGlob,ExpressionTransform (BinCond (BooleanExpression LessEqual (AliasTerm (Identifier \"cohort\")) (ScalarTerm (Number (Left 4)))) (ScalarTerm (String \"04\")) (ScalarTerm (String \"59\"))) (Identifier \"herd\")]))]")
+   , testCase "foreach stmt with field as is" (testStmt "desktop_client_dates2 = FOREACH desktop_client_dates GENERATE '$date' AS date, (datediff < 0 OR datediff > 30 ? server_date : device_date) AS device_date, user_id;"
+                                                        "Seq [Assignment (Identifier \"desktop_client_dates2\") (ForeachClause (Identifier \"desktop_client_dates\") (GenBlock [EnvTransform (String \"$date\") (Identifier \"date\"),ExpressionTransform (BinCond (BooleanBinary Or (BooleanExpression Less (AliasTerm (Identifier \"datediff\")) (ScalarTerm (Number (Left 0)))) (BooleanExpression Greater (AliasTerm (Identifier \"datediff\")) (ScalarTerm (Number (Left 30))))) (AliasTerm (Identifier \"server_date\")) (AliasTerm (Identifier \"device_date\"))) (Identifier \"device_date\"),IdentityTransform (Identifier \"user_id\")]))]")
+
    , testCase "foreach stmt with ternary if-then-else complex" (testStmt "desktop_client_dates = FOREACH desktop_client GENERATE server_date AS server_date, device_date AS device_date, user_id AS user_id, (server_date != '0' AND device_date != '0' ? (ISOToUnix(CustomFormatToISO(server_date,'YYYY-MM-dd'))-ISOToUnix(CustomFormatToISO(device_date,'YYYY-MM-dd')))/86400000 : 0) AS datediff;"
                                                                           "Seq [Assignment (Identifier \"desktop_client_dates\") (ForeachClause (Identifier \"desktop_client\") (GenBlock [AliasTransform (Identifier \"server_date\") (Identifier \"server_date\"),AliasTransform (Identifier \"device_date\") (Identifier \"device_date\"),AliasTransform (Identifier \"user_id\") (Identifier \"user_id\"),ExpressionTransform (BinCond (BooleanBinary And (BooleanExpression NotEqual (AliasTerm (Identifier \"server_date\")) (ScalarTerm (String \"0\"))) (BooleanExpression NotEqual (AliasTerm (Identifier \"device_date\")) (ScalarTerm (String \"0\")))) (Binary Divide (Binary Subtract (FunctionTerm (Function \"ISOToUnix\" [FunctionTerm (Function \"CustomFormatToISO\" [AliasTerm (Identifier \"server_date\"),ScalarTerm (String \"YYYY-MM-dd\")])])) (FunctionTerm (Function \"ISOToUnix\" [FunctionTerm (Function \"CustomFormatToISO\" [AliasTerm (Identifier \"device_date\"),ScalarTerm (String \"YYYY-MM-dd\")])]))) (ScalarTerm (Number (Left 86400000)))) (ScalarTerm (Number (Left 0)))) (Identifier \"datediff\")]))]")
 {-
