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.

8 lines
49 KiB

{
"version": 3,
"sources": ["../../../src/dialects/postgres/query-generator.js"],
"sourcesContent": ["'use strict';\n\nconst Utils = require('../../utils');\nconst util = require('util');\nconst DataTypes = require('../../data-types');\nconst AbstractQueryGenerator = require('../abstract/query-generator');\nconst semver = require('semver');\nconst _ = require('lodash');\n\n/**\n * list of reserved words in PostgreSQL 10\n * source: https://www.postgresql.org/docs/10/static/sql-keywords-appendix.html\n *\n * @private\n */\nconst POSTGRES_RESERVED_WORDS = 'all,analyse,analyze,and,any,array,as,asc,asymmetric,authorization,binary,both,case,cast,check,collate,collation,column,concurrently,constraint,create,cross,current_catalog,current_date,current_role,current_schema,current_time,current_timestamp,current_user,default,deferrable,desc,distinct,do,else,end,except,false,fetch,for,foreign,freeze,from,full,grant,group,having,ilike,in,initially,inner,intersect,into,is,isnull,join,lateral,leading,left,like,limit,localtime,localtimestamp,natural,not,notnull,null,offset,on,only,or,order,outer,overlaps,placing,primary,references,returning,right,select,session_user,similar,some,symmetric,table,tablesample,then,to,trailing,true,union,unique,user,using,variadic,verbose,when,where,window,with'.split(',');\n\nclass PostgresQueryGenerator extends AbstractQueryGenerator {\n setSearchPath(searchPath) {\n return `SET search_path to ${searchPath};`;\n }\n\n createDatabaseQuery(databaseName, options) {\n options = {\n encoding: null,\n collate: null,\n ...options\n };\n\n const values = {\n database: this.quoteTable(databaseName),\n encoding: options.encoding ? ` ENCODING = ${this.escape(options.encoding)}` : '',\n collation: options.collate ? ` LC_COLLATE = ${this.escape(options.collate)}` : '',\n ctype: options.ctype ? ` LC_CTYPE = ${this.escape(options.ctype)}` : '',\n template: options.template ? ` TEMPLATE = ${this.escape(options.template)}` : ''\n };\n\n return `CREATE DATABASE ${values.database}${values.encoding}${values.collation}${values.ctype}${values.template};`;\n }\n\n dropDatabaseQuery(databaseName) {\n return `DROP DATABASE IF EXISTS ${this.quoteTable(databaseName)};`;\n }\n\n createSchema(schema) {\n const databaseVersion = _.get(this, 'sequelize.options.databaseVersion', 0);\n\n if (databaseVersion && semver.gte(databaseVersion, '9.2.0')) {\n return `CREATE SCHEMA IF NOT EXISTS ${schema};`;\n }\n\n return `CREATE SCHEMA ${schema};`;\n }\n\n dropSchema(schema) {\n return `DROP SCHEMA IF EXISTS ${schema} CASCADE;`;\n }\n\n showSchemasQuery() {\n return \"SELECT schema_name FROM information_schema.schemata WHERE schema_name <> 'information_schema' AND schema_name != 'public' AND schema_name !~ E'^pg_';\";\n }\n\n versionQuery() {\n return 'SHOW SERVER_VERSION';\n }\n\n createTableQuery(tableName, attributes, options) {\n options = { ...options };\n\n //Postgres 9.0 does not support CREATE TABLE IF NOT EXISTS, 9.1 and above do\n const databaseVersion = _.get(this, 'sequelize.options.databaseVersion', 0);\n const attrStr = [];\n let comments = '';\n let columnComments = '';\n\n const quotedTable = this.quoteTable(tableName);\n\n if (options.comment && typeof options.comment === 'string') {\n comments += `; COMMENT ON TABLE ${quotedTable} IS ${this.escape(options.comment)}`;\n }\n\n for (const attr in attributes) {\n const quotedAttr = this.quoteIdentifier(attr);\n const i = attributes[attr].indexOf('COMMENT ');\n if (i !== -1) {\n // Move comment to a separate query\n const escapedCommentText = this.escape(attributes[attr].substring(i + 8));\n columnComments += `; COMMENT ON COLUMN ${quotedTable}.${quotedAttr} IS ${escapedCommentText}`;\n attributes[attr] = attributes[attr].substring(0, i);\n }\n\n const dataType = this.dataTypeMapping(tableName, attr, attributes[attr]);\n attrStr.push(`${quotedAttr} ${dataType}`);\n }\n\n\n let attributesClause = attrStr.join(', ');\n\n if (options.uniqueKeys) {\n _.each(
"mappings": "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
"names": []
}