@Override public Void visit(DatasetDecl dd, Integer step) throws CompilationException { if (dd.getDatasetType() == DatasetType.INTERNAL) { String line = skip(step) + "DatasetDecl " + dd.getName() + "(" + dd.getItemTypeName() + ")" + " partitioned by " + ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getPartitioningExprs(); if (((InternalDetailsDecl) dd.getDatasetDetailsDecl()).isAutogenerated()) { line += " [autogenerated]"; } out.println(line); } else if (dd.getDatasetType() == DatasetType.EXTERNAL) { out.println(skip(step) + "DatasetDecl " + dd.getName() + "(" + dd.getItemTypeName() + ")" + "is an external dataset"); } return null; }
+ generateIfNotExists(dd.getIfNotExists()) + "(" + dd.getQualifiedTypeName() + ")" + " primary key "); printDelimitedKeys(((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getPartitioningExprs(), ","); if (((InternalDetailsDecl) dd.getDatasetDetailsDecl()).isAutogenerated()) { out.print(" autogenerated "); skip(step) + "create external " + datasetSymbol + generateFullName(dd.getDataverse(), dd.getName()) + "(" + dd.getQualifiedTypeName() + ")" + generateIfNotExists(dd.getIfNotExists())); ExternalDetailsDecl externalDetails = (ExternalDetailsDecl) dd.getDatasetDetailsDecl(); out.print(" using " + revertStringToQuoted(externalDetails.getAdapter())); printConfiguration(externalDetails.getProperties()); List<String> filterField = ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getFilterField(); if (filterField != null && filterField.size() > 0) { out.print(" with filter on ");
((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getPartitioningExprs(); List<Integer> keySourceIndicators = ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getKeySourceIndicators(); boolean autogenerated = ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).isAutogenerated(); ARecordType aRecordType = (ARecordType) itemType; List<IAType> partitioningTypes = ValidateUtil.validatePartitioningExpressions(aRecordType, metaRecType, partitioningExprs, keySourceIndicators, autogenerated, sourceLoc); List<String> filterField = ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getFilterField(); if (filterField != null) { ValidateUtil.validateFilterField(aRecordType, filterField, sourceLoc); break; case EXTERNAL: String adapter = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl()).getAdapter(); Map<String, String> properties = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl()).getProperties();