Author: daijy
Date: Thu Oct 27 20:24:40 2016
New Revision: 1766882
URL: http://svn.apache.org/viewvc?rev=1766882&view=rev
Log:
PIG-4934: SET command does not work well with deprecated settings
Added:
pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
Modified: pig/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1766882&r1=1766881&r2=1766882&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Thu Oct 27 20:24:40 2016
@@ -50,6 +50,8 @@ OPTIMIZATIONS
Â
BUG FIXES
+PIG-4934: SET command does not work well with deprecated settings (szita via
daijy)
+
PIG-4798: big integer literals fail to parse (szita via daijy)
PIG-5045: CSVExcelStorage Load: A Quoted Field with a Single Escaped Quote
"""" Becomes "" This should become " instead
Modified:
pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java?rev=1766882&r1=1766881&r2=1766882&view=diff
==============================================================================
---
pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java
(original)
+++
pig/trunk/src/org/apache/pig/backend/hadoop/datastorage/ConfigurationUtil.java
Thu Oct 27 20:24:40 2016
@@ -106,4 +106,14 @@ public class ConfigurationUtil {
}
}
}
+
+ /**
+ * Returns Properties containing alternative names of given property and
same values - can be used to solve deprecations
+ * @return
+ */
+ public static Properties expandForAlternativeNames(String name, String
value){
+ final Configuration config = new Configuration(false);
+ config.set(name,value);
+ return ConfigurationUtil.toProperties(config);
+ }
}
Modified:
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java?rev=1766882&r1=1766881&r2=1766882&view=diff
==============================================================================
---
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
(original)
+++
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
Thu Oct 27 20:24:40 2016
@@ -351,7 +351,11 @@ public abstract class HExecutionEngine i
@Override
public void setProperty(String property, String value) {
Properties properties = pigContext.getProperties();
- properties.put(property, value);
+ if (Configuration.isDeprecated(property)) {
+
properties.putAll(ConfigurationUtil.expandForAlternativeNames(property, value));
+ } else {
+ properties.put(property, value);
+ }
}
@Override
Added: pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java
URL:
http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java?rev=1766882&view=auto
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java (added)
+++ pig/trunk/test/org/apache/pig/test/TestConfigurationUtil.java Thu Oct 27
20:24:40 2016
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.pig.test;
+
+
+import java.util.Properties;
+
+import org.apache.pig.backend.hadoop.datastorage.ConfigurationUtil;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class TestConfigurationUtil {
+
+ @Test
+ public void testExpandForAlternativeNames() {
+ Properties properties = null;
+ properties =
ConfigurationUtil.expandForAlternativeNames("fs.df.interval", "500");
+ Assert.assertEquals(1,properties.size());
+ Assert.assertEquals("500",properties.get("fs.df.interval"));
+
+ properties =
ConfigurationUtil.expandForAlternativeNames("dfs.df.interval", "600");
+ Assert.assertEquals(2,properties.size());
+ Assert.assertEquals("600",properties.get("fs.df.interval"));
+ Assert.assertEquals("600",properties.get("dfs.df.interval"));
+
+ properties = ConfigurationUtil.expandForAlternativeNames("", "");
+ Assert.assertEquals(1,properties.size());
+ Assert.assertEquals("",properties.get(""));
+
+ }
+}