query-generator.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropSymbols = Object.getOwnPropertySymbols;
  4. var __hasOwnProp = Object.prototype.hasOwnProperty;
  5. var __propIsEnum = Object.prototype.propertyIsEnumerable;
  6. var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  7. var __spreadValues = (a, b) => {
  8. for (var prop in b || (b = {}))
  9. if (__hasOwnProp.call(b, prop))
  10. __defNormalProp(a, prop, b[prop]);
  11. if (__getOwnPropSymbols)
  12. for (var prop of __getOwnPropSymbols(b)) {
  13. if (__propIsEnum.call(b, prop))
  14. __defNormalProp(a, prop, b[prop]);
  15. }
  16. return a;
  17. };
  18. const MySQLQueryGenerator = require("../mysql/query-generator");
  19. const Utils = require("./../../utils");
  20. class MariaDBQueryGenerator extends MySQLQueryGenerator {
  21. createSchema(schema, options) {
  22. options = __spreadValues({
  23. charset: null,
  24. collate: null
  25. }, options);
  26. return Utils.joinSQLFragments([
  27. "CREATE SCHEMA IF NOT EXISTS",
  28. this.quoteIdentifier(schema),
  29. options.charset && `DEFAULT CHARACTER SET ${this.escape(options.charset)}`,
  30. options.collate && `DEFAULT COLLATE ${this.escape(options.collate)}`,
  31. ";"
  32. ]);
  33. }
  34. dropSchema(schema) {
  35. return `DROP SCHEMA IF EXISTS ${this.quoteIdentifier(schema)};`;
  36. }
  37. showSchemasQuery(options) {
  38. const schemasToSkip = [
  39. "'MYSQL'",
  40. "'INFORMATION_SCHEMA'",
  41. "'PERFORMANCE_SCHEMA'"
  42. ];
  43. if (options.skip && Array.isArray(options.skip) && options.skip.length > 0) {
  44. for (const schemaName of options.skip) {
  45. schemasToSkip.push(this.escape(schemaName));
  46. }
  47. }
  48. return Utils.joinSQLFragments([
  49. "SELECT SCHEMA_NAME as schema_name",
  50. "FROM INFORMATION_SCHEMA.SCHEMATA",
  51. `WHERE SCHEMA_NAME NOT IN (${schemasToSkip.join(", ")})`,
  52. ";"
  53. ]);
  54. }
  55. showTablesQuery(database) {
  56. let query = "SELECT TABLE_NAME, TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'";
  57. if (database) {
  58. query += ` AND TABLE_SCHEMA = ${this.escape(database)}`;
  59. } else {
  60. query += " AND TABLE_SCHEMA NOT IN ('MYSQL', 'INFORMATION_SCHEMA', 'PERFORMANCE_SCHEMA')";
  61. }
  62. return `${query};`;
  63. }
  64. quoteIdentifier(identifier, force) {
  65. return Utils.addTicks(Utils.removeTicks(identifier, "`"), "`");
  66. }
  67. }
  68. module.exports = MariaDBQueryGenerator;
  69. //# sourceMappingURL=query-generator.js.map