@Test
public void testGetFunctions() throws Exception {
SessionHandle sessionHandle = client.openSession("tom", "password");
assertNotNull(sessionHandle);
OperationHandle opHandle = client.getFunctions(sessionHandle, null, null, "*");
TableSchema schema = client.getResultSetMetadata(opHandle);
ColumnDescriptor columnDesc = schema.getColumnDescriptorAt(0);
assertEquals("FUNCTION_CAT", columnDesc.getName());
assertEquals(Type.STRING_TYPE, columnDesc.getType());
columnDesc = schema.getColumnDescriptorAt(1);
assertEquals("FUNCTION_SCHEM", columnDesc.getName());
assertEquals(Type.STRING_TYPE, columnDesc.getType());
columnDesc = schema.getColumnDescriptorAt(2);
assertEquals("FUNCTION_NAME", columnDesc.getName());
assertEquals(Type.STRING_TYPE, columnDesc.getType());
columnDesc = schema.getColumnDescriptorAt(3);
assertEquals("REMARKS", columnDesc.getName());
assertEquals(Type.STRING_TYPE, columnDesc.getType());
columnDesc = schema.getColumnDescriptorAt(4);
assertEquals("FUNCTION_TYPE", columnDesc.getName());
assertEquals(Type.INT_TYPE, columnDesc.getType());
columnDesc = schema.getColumnDescriptorAt(5);
assertEquals("SPECIFIC_NAME", columnDesc.getName());
assertEquals(Type.STRING_TYPE, columnDesc.getType());
client.closeOperation(opHandle);
client.closeSession(sessionHandle);
}