@ApiOperation(value = "Get column info for a single table", tags = { "Database tables" })
    @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Indicates the table exists and the table column info is returned."),
            @ApiResponse(code = 404, message = "Indicates the requested table does not exist.")
    })
    @GetMapping(value = "/management/tables/{tableName}/columns", produces = "application/json")
    public TableMetaData getTableMetaData(@ApiParam(name = "tableName") @PathVariable String tableName) {
        if (restApiInterceptor != null) {
            restApiInterceptor.accessTableInfo();
        }
        
        TableMetaData response = managementService.getTableMetaData(tableName);

        if (response == null) {
            throw new FlowableObjectNotFoundException("Could not find a table with name '" + tableName + "'.", String.class);
        }
        return response;
    }
@Test
    public void testGetTableColumns() throws Exception {
        String tableName = managementService.getTableCount().keySet().iterator().next();

        TableMetaData metaData = managementService.getTableMetaData(tableName);

        CloseableHttpResponse response = executeRequest(
                new HttpGet(SERVER_URL_PREFIX + RestUrls.createRelativeResourceUrl(RestUrls.URL_TABLE_COLUMNS, tableName)), HttpStatus.SC_OK);

        // Check table
        JsonNode responseNode = objectMapper.readTree(response.getEntity().getContent());
        closeResponse(response);
        assertThat(responseNode).isNotNull();
        assertThat(responseNode.get("tableName").textValue()).isEqualTo(tableName);

        ArrayNode names = (ArrayNode) responseNode.get("columnNames");
        ArrayNode types = (ArrayNode) responseNode.get("columnTypes");
        assertThat(names).isNotNull();
        assertThat(types).isNotNull();

        assertThat(names).hasSameSizeAs(metaData.getColumnNames());
        assertThat(types).hasSameSizeAs(metaData.getColumnTypes());

        for (int i = 0; i < names.size(); i++) {
            assertThat(metaData.getColumnNames().get(i)).isEqualTo(names.get(i).textValue());
            assertThat(metaData.getColumnTypes().get(i)).isEqualTo(types.get(i).textValue());
        }
    }