8 lines
14 KiB
Plaintext
8 lines
14 KiB
Plaintext
|
{
|
||
|
"version": 3,
|
||
|
"sources": ["../../../src/dialects/snowflake/query.js"],
|
||
|
"sourcesContent": ["'use strict';\n\nconst AbstractQuery = require('../abstract/query');\nconst sequelizeErrors = require('../../errors');\nconst _ = require('lodash');\nconst { logger } = require('../../utils/logger');\n\nconst ER_DUP_ENTRY = 1062;\nconst ER_DEADLOCK = 1213;\nconst ER_ROW_IS_REFERENCED = 1451;\nconst ER_NO_REFERENCED_ROW = 1452;\n\nconst debug = logger.debugContext('sql:snowflake');\n\nclass Query extends AbstractQuery {\n static formatBindParameters(sql, values, dialect) {\n const bindParam = [];\n const replacementFunc = (_match, key, values_) => {\n if (values_[key] !== undefined) {\n bindParam.push(values_[key]);\n return '?';\n }\n return undefined;\n };\n sql = AbstractQuery.formatBindParameters(sql, values, dialect, replacementFunc)[0];\n return [sql, bindParam.length > 0 ? bindParam : undefined];\n }\n\n async run(sql, parameters) {\n this.sql = sql;\n const { connection, options } = this;\n\n const showWarnings = this.sequelize.options.showWarnings || options.showWarnings;\n\n const complete = this._logQuery(sql, debug, parameters);\n\n if (parameters) {\n debug('parameters(%j)', parameters);\n }\n\n let results;\n\n try {\n results = await new Promise((resolve, reject) => {\n connection.execute({\n sqlText: sql,\n binds: parameters,\n complete(err, _stmt, rows) {\n if (err) {\n reject(err);\n } else {\n resolve(rows);\n }\n }\n });\n });\n } catch (error) {\n if (options.transaction && error.errno === ER_DEADLOCK) {\n try {\n await options.transaction.rollback();\n } catch (error_) {\n // ignore errors\n }\n\n options.transaction.finished = 'rollback';\n }\n\n error.sql = sql;\n error.parameters = parameters;\n throw this.formatError(error);\n } finally {\n complete();\n }\n\n if (showWarnings && results && results.warningStatus > 0) {\n await this.logWarnings(results);\n }\n return this.formatResults(results);\n }\n\n /**\n * High level function that handles the results of a query execution.\n *\n *\n * Example:\n * query.formatResults([\n * {\n * id: 1, // this is from the main table\n * attr2: 'snafu', // this is from the main table\n * Tasks.id: 1, // this is from the associated table\n * Tasks.title: 'task' // this is from the associated table\n * }\n * ])\n *\n * @param {Array} data - The result of the query execution.\n * @private\n */\n formatResults(data) {\n let result = this.instance;\n\n if (this.isInsertQuery(data)) {\n this.handleInsertQuery(data);\n\n if (!this.instance) {\n // handle bulkCreate AI primary key\n if (\n data.constructor.name === 'ResultSetHeader'\n && this.model\n && this.model.autoIncrementAttribute\n && this.model.autoIncrementAttribute === this.model.primaryKeyAttribute\n && this.model.rawAttributes[this.model.primaryKeyAttribute]\n ) {\n const startId = data[this.getInsertIdField()];\n result = [];\n for (let i = startId; i < startId + data.affectedRows; i++) {\n result.push({ [this.model.rawAttributes[this.model.primaryKeyAttribute].field]: i });\n }\n } else {\n result = data[this.getInsertIdField()];\n }\n }\n }\n\n if (this.isSelectQuery()) {\n // Snowflake will treat tables as case-insensitive, so fix the case\n // of the returned values to match attributes\n if (this.options.raw === false && this.sequelize.options.quoteIdentifiers === false) {\n const sfAttrMap = _.reduce(this.model.rawAttributes, (m, v, k) => {\n m[k.toUpperCase()] = k;\n return m;\n }, {});\n\n data = data.map(data => _.reduce(data, (prev, value, key) => {\n if ( value !== undefined &&
|
||
|
"mappings": "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
|
||
|
"names": []
|
||
|
}
|