mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.6 KiB
64 lines
1.6 KiB
7 years ago
|
'use strict';
|
||
|
|
||
|
exports.findOrInsertObjectArrayByKey = (obj, key, array) => {
|
||
|
|
||
|
let found = 0;
|
||
|
let i = 0;
|
||
|
|
||
|
for (i = 0; i < array.length; ++i) {
|
||
|
if (key in array[i]) {
|
||
|
if (obj[key] === array[i][key]) {
|
||
|
found = 1;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!found) {
|
||
|
array.push(obj)
|
||
|
}
|
||
|
|
||
|
return array[i];
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
exports.findObjectInArrayByKey = (key, value, objArray) => {
|
||
|
|
||
|
for (let i = 0; i < objArray.length; ++i) {
|
||
|
if (objArray[i][key] === value) {
|
||
|
return objArray[i];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
|
||
|
};
|
||
|
|
||
|
exports.getSchemaQuery = function () {
|
||
|
return 'select c.table_name, c.column_name, c.ordinal_position,c.column_key,c.is_nullable, c.data_type, c.column_type,c.extra,c.privileges, ' +
|
||
|
'c.column_comment,c.column_default,c.data_type,c.character_maximum_length, ' +
|
||
|
'c.character_octet_length,c.numeric_precision,c.numeric_scale,c.datetime_precision,c.character_set_name, ' +
|
||
|
'c.collation_name, ' +
|
||
|
'k.constraint_name, k.referenced_table_name, k.referenced_column_name, ' +
|
||
|
's.index_name,s.seq_in_index ' +
|
||
|
'from ' +
|
||
|
'information_schema.columns as c ' +
|
||
|
'left join ' +
|
||
|
'information_schema.key_column_usage as k ' +
|
||
|
'on ' +
|
||
|
'c.column_name=k.column_name and ' +
|
||
|
'c.table_schema = k.referenced_table_schema and ' +
|
||
|
'c.table_name = k.table_name ' +
|
||
|
'left join ' +
|
||
|
'information_schema.statistics as s ' +
|
||
|
'on ' +
|
||
|
'c.column_name = s.column_name and ' +
|
||
|
'c.table_schema = s.index_schema and ' +
|
||
|
'c.table_name = s.table_name ' +
|
||
|
'where ' +
|
||
|
'c.table_schema=? ' +
|
||
|
'order by ' +
|
||
|
'c.table_name, c.ordinal_position';
|
||
|
};
|