[
https://issues.apache.org/jira/browse/DRILL-5258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15877194#comment-15877194
]
ASF GitHub Bot commented on DRILL-5258:
---------------------------------------
Github user sohami commented on a diff in the pull request:
https://github.com/apache/drill/pull/752#discussion_r102362622
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/store/mock/MockStorageEngine.java
---
@@ -109,7 +121,37 @@ public MockSchema(MockStorageEngine engine) {
@Override
public Table getTable(String name) {
- Pattern p = Pattern.compile("(\\w+)_(\\d+)(k|m)?",
Pattern.CASE_INSENSITIVE);
+ if (name.toLowerCase().endsWith(".json") ) {
+ return getConfigFile(name);
+ } else {
+ return getDirectTable(name);
+ }
+ }
+
+ private Table getConfigFile(String name) {
+ final URL url = Resources.getResource(name);
+ if (url == null) {
+ throw new IllegalArgumentException(
+ "Unable to find mock table config file " + name);
+ }
+ MockTableDef mockTableDefn;
+ try {
+ String json = Resources.toString(url, Charsets.UTF_8);
+ final ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES,
true);
+ mockTableDefn = mapper.readValue(json, MockTableDef.class);
+ } catch (JsonParseException e) {
+ throw new IllegalArgumentException( "Unable to parse mock table
definition file: " + name, e );
+ } catch (JsonMappingException e) {
+ throw new IllegalArgumentException( "Unable to Jackson deserialize
mock table definition file: " + name, e );
+ } catch (IOException e) {
+ throw new IllegalArgumentException( "Unable to read mock table
definition file: " + name, e );
+ }
+ return new DynamicDrillTable(engine, this.name,
mockTableDefn.getEntries() );
--- End diff --
Please remove extra space before last` )`. there are few other places too
like line 169 in this file, line 199 (MockTableDef.java), etc.
> Allow "extended" mock tables access from SQL queries
> ----------------------------------------------------
>
> Key: DRILL-5258
> URL: https://issues.apache.org/jira/browse/DRILL-5258
> Project: Apache Drill
> Issue Type: Improvement
> Affects Versions: 1.10
> Reporter: Paul Rogers
> Assignee: Paul Rogers
> Priority: Minor
> Fix For: 1.10
>
>
> DRILL-5152 provided a simple way to generate sample data in SQL using a new,
> simplified version of the mock data generator. This approach is very
> convenient, but is inherently limited. For example, the limited syntax
> available in SQL does not encoding much information about columns such as
> repeat count, data generator or so on. The simple SQL approach does not allow
> generating multiple groups of data.
> However, all these features are present in the original mock data source via
> a special JSON configuration file. Previously, only physical plans could
> access that extended syntax.
> This ticket requests a SQL interface to the extended mock data source:
> {code}
> SELECT * FROM `mock`.`example/mock-options.json`
> {code}
> Mock data source options are always stored as a JSON file. Since the existing
> mock data generator for SQL never uses JSON files, a simple rule is that if
> the table name ends in ".json" then it is a specification, else the
> information is encoded in table and column names.
> The format of the data generation syntax is documented in the mock data
> source classes.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)