From e6a94006bf64a959c07c7b0bd8317abeb9af4418 Mon Sep 17 00:00:00 2001 From: Karthik Venkateswaran Date: Mon, 18 Mar 2019 14:26:07 +0530 Subject: [PATCH 1/2] npm installed --- console/package-lock.json | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/console/package-lock.json b/console/package-lock.json index bbf53f9f3f77e..c9ba1cb7d0e9f 100644 --- a/console/package-lock.json +++ b/console/package-lock.json @@ -6092,7 +6092,7 @@ "dependencies": { "combined-stream": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { "delayed-stream": "~1.0.0" @@ -6220,7 +6220,8 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", @@ -6228,7 +6229,8 @@ }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -6331,7 +6333,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -6341,6 +6344,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -6452,7 +6456,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -6567,6 +6572,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9488,7 +9494,7 @@ }, "node-fetch": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" }, "node-gyp": { @@ -12146,7 +12152,7 @@ }, "onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, @@ -12243,7 +12249,7 @@ }, "p-is-promise": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", "dev": true }, @@ -17671,7 +17677,7 @@ }, "whatwg-fetch": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "resolved": "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" }, "whet.extend": { From b17cb45b661703f1827e3c511904fbd3d072029d Mon Sep 17 00:00:00 2001 From: Karthik Venkateswaran Date: Fri, 24 May 2019 13:06:56 +0530 Subject: [PATCH 2/2] Fix issue #2258 --- .../components/Services/Data/Common/utils.js | 51 ++++++++++++++++--- .../Data/TableModify/ColumnEditorList.js | 15 +++++- .../Services/Data/TableModify/ModifyTable.js | 5 ++ .../src/components/Services/Data/constants.js | 1 + 4 files changed, 64 insertions(+), 8 deletions(-) diff --git a/console/src/components/Services/Data/Common/utils.js b/console/src/components/Services/Data/Common/utils.js index 26abed5e57d3c..0142ebb8b1062 100644 --- a/console/src/components/Services/Data/Common/utils.js +++ b/console/src/components/Services/Data/Common/utils.js @@ -1,13 +1,44 @@ import { aggCategory, pgCategoryCode } from './PgInfo'; +const splitDbRow = row => { + /* Splits comma seperated type names + * Splits comma seperated type display names + * Splits comma seperated type descriptions + * */ + return { + typInfo: row[0].split(','), + typDisplayName: row[1].split(','), + typDescription: row[2].split(':'), + }; +}; + +/* + * Returns a map of all data types and their source info + * Example: + * For text: text text "variable-length string, no limit specified" + * */ + +const getAllDataTypeMap = allDataTypes => { + const dTIndex = {}; + allDataTypes.forEach(dataTypes => { + const { typInfo, typDisplayName, typDescription } = splitDbRow(dataTypes); + + typInfo.forEach((currentType, typIndex) => { + dTIndex[currentType] = [ + typInfo[typIndex], + typDisplayName[typIndex], + typDescription[typIndex], + ]; + }); + }); + return dTIndex; +}; + const getDataTypeInfo = (row, categoryInfo, colId) => { const columnTypeValueMap = {}; - // Splits comma seperated type names - const typInfo = row[0].split(','); - // Splits comma seperated type display names - const typDisplayName = row[1].split(','); - // Splits comma seperated type descriptions - const typDescription = row[2].split(':'); + + const { typInfo, typDisplayName, typDescription } = splitDbRow(row); + // Create option object for every valid type const currTypeObj = typInfo.map((t, i) => { const optObj = { @@ -100,4 +131,10 @@ const getDefaultValue = column => { return ('default' in column && column.default.value) || ''; }; -export { getDataOptions, getPlaceholder, getDefaultValue, getDataTypeInfo }; +export { + getDataOptions, + getPlaceholder, + getDefaultValue, + getDataTypeInfo, + getAllDataTypeMap, +}; diff --git a/console/src/components/Services/Data/TableModify/ColumnEditorList.js b/console/src/components/Services/Data/TableModify/ColumnEditorList.js index d81b2f082874c..32ae95c97fc6b 100644 --- a/console/src/components/Services/Data/TableModify/ColumnEditorList.js +++ b/console/src/components/Services/Data/TableModify/ColumnEditorList.js @@ -11,6 +11,7 @@ import { } from '../TableModify/ModifyActions'; import { fetchColumnComment } from '../DataActions'; import { ordinalColSort } from '../utils'; +import { defaultDataTypeToCast } from '../constants'; import styles from './ModifyTable.scss'; @@ -22,6 +23,7 @@ const ColumnEditorList = ({ columnComments, // validTypeCasts, + dataTypeIndexMap, }) => { const tableName = tableSchema.table_name; @@ -125,10 +127,21 @@ const ColumnEditorList = ({ ); }; + const getValidTypeCasts = udtName => { + const lowerUdtName = udtName.toLowerCase(); + if (lowerUdtName in validTypeCasts) { + return validTypeCasts[lowerUdtName]; + } + return [ + ...dataTypeIndexMap[lowerUdtName], + ...dataTypeIndexMap[defaultDataTypeToCast], + ]; + }; + const colEditorExpanded = () => { return ( t.table_name === tableName); const untrackBtn = ( @@ -120,6 +124,7 @@ class ModifyTable extends React.Component {

Columns