Github user siddhimehta commented on a diff in the pull request:
https://github.com/apache/phoenix/pull/98#discussion_r34329942
--- Diff:
phoenix-pig/src/main/java/org/apache/phoenix/pig/udf/ReserveNSequence.java ---
@@ -0,0 +1,88 @@
+/**
+ *
+ */
+package org.apache.phoenix.pig.udf;
+
+/*
+ * 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.
+ */
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.phoenix.mapreduce.util.ConnectionUtil;
+import org.apache.pig.EvalFunc;
+import org.apache.pig.data.Tuple;
+import org.apache.pig.impl.util.UDFContext;
+
+import com.google.common.base.Preconditions;
+
+/**
+ * UDF to Reserve a chunk of numbers for a given sequence
+ *
+ * @note The way this UDF is invoked we open a new connection for every
tuple row. The UDF will not perform well on
+ * large datasets as it involves creating a new connection for every
tuple row
+ */
+public class ReserveNSequence extends EvalFunc<Long> {
+
+ public static final String INVALID_TUPLE_MESSAGE = "Tuple should have
correct fields(NumtoReserve,SequenceName,zkquorum.";
+ public static final String EMPTY_SEQUENCE_NAME_MESSAGE = "Sequence
name should be not null";
+ public static final String EMPTY_ZK_MESSAGE = "ZKQuorum should be not
null";
+ public static final String INVALID_NUMBER_MESSAGE = "NUmber of
Sequences to Reserve should be greater than 0";
+ public static final String SEQUENCE_NAME_CONF_KEY =
"phoenix.sequence.name";
+
+ /**
+ * Reserve N next sequences for a sequence name. N is the first field
in the tuple. Sequence name is the second
+ * field in the tuple zkquorum is the third field in the tuple
+ */
+ @Override
+ public Long exec(Tuple input) throws IOException {
--- End diff --
UDF that taken in tuple with number,sequenceName,ZkEndpoint and bulk
reserves the sequence
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---