[ https://issues.apache.org/jira/browse/PHOENIX-1661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14639754#comment-14639754 ]
ASF GitHub Bot commented on PHOENIX-1661: ----------------------------------------- Github user twdsilva commented on a diff in the pull request: https://github.com/apache/phoenix/pull/93#discussion_r35388212 --- Diff: phoenix-core/src/it/java/org/apache/phoenix/end2end/JsonArrayLengthFunctionIT.java --- @@ -0,0 +1,114 @@ +/** + * + */ +package org.apache.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Properties; +import org.apache.phoenix.expression.function.JsonArrayLengthFunction; +import org.apache.phoenix.util.PropertiesUtil; +import org.junit.Test; + +/** + * End to end test for {@link JsonArrayLengthFunction}. + * + */ +public class JsonArrayLengthFunctionIT extends BaseHBaseManagedTimeIT { + + @Test + public void testJsonArrayLengthWithWhereClause() throws Exception { + Connection conn = getConnection(); + String json = "[1,2,3]"; + String pk = "valueOne"; + try { + populateJsonTable(conn, json, pk); + + String selectQuery = "SELECT col1 FROM testJson WHERE json_array_length(col1) = 3"; + PreparedStatement stmt = conn.prepareStatement(selectQuery); + ResultSet rs = stmt.executeQuery(); + assertTrue(rs.next()); + assertEquals("Json data read from DB is not as expected.", json, + rs.getString(1)); + assertFalse(rs.next()); + + } finally { + conn.close(); + } + } + + @Test + public void testJsonArrayLengthWhenFirstArgumentIsJsonString() --- End diff -- Change test name to testJsonArrayWithDifferentDataTypes > Implement built-in functions for JSON > ------------------------------------- > > Key: PHOENIX-1661 > URL: https://issues.apache.org/jira/browse/PHOENIX-1661 > Project: Phoenix > Issue Type: Bug > Reporter: James Taylor > Labels: JSON, Java, SQL, gsoc2015, mentor > Attachments: PhoenixJSONSpecification-First-Draft.pdf > > > Take a look at the JSON built-in functions that are implemented in Postgres > (http://www.postgresql.org/docs/9.3/static/functions-json.html) and implement > the same for Phoenix in Java following this guide: > http://phoenix-hbase.blogspot.com/2013/04/how-to-add-your-own-built-in-function.html > Examples of functions include ARRAY_TO_JSON, ROW_TO_JSON, TO_JSON, etc. The > implementation of these built-in functions will be impacted by how JSON is > stored in Phoenix. See PHOENIX-628. An initial implementation could work off > of a simple text-based JSON representation and then when a native JSON type > is implemented, they could be reworked to be more efficient. -- This message was sent by Atlassian JIRA (v6.3.4#6332)