You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
5.0 KiB
JavaScript
173 lines
5.0 KiB
JavaScript
2 years ago
|
/*
|
||
|
* Copyright DataStax, Inc.
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
* you may not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*/
|
||
|
'use strict';
|
||
|
const util = require('util');
|
||
|
const events = require('events');
|
||
|
/**
|
||
|
* Creates a new instance of DataCollection
|
||
|
* @param {String} name Name of the data object.
|
||
|
* @classdesc Describes a table or a view
|
||
|
* @alias module:metadata~DataCollection
|
||
|
* @constructor
|
||
|
* @abstract
|
||
|
*/
|
||
|
function DataCollection(name) {
|
||
|
events.EventEmitter.call(this);
|
||
|
this.setMaxListeners(0);
|
||
|
//private
|
||
|
Object.defineProperty(this, 'loading', { value: false, enumerable: false, writable: true });
|
||
|
Object.defineProperty(this, 'loaded', { value: false, enumerable: false, writable: true });
|
||
|
/**
|
||
|
* Name of the object
|
||
|
* @type {String}
|
||
|
*/
|
||
|
this.name = name;
|
||
|
/**
|
||
|
* False-positive probability for SSTable Bloom filters.
|
||
|
* @type {number}
|
||
|
*/
|
||
|
this.bloomFilterFalsePositiveChance = 0;
|
||
|
/**
|
||
|
* Level of caching: all, keys_only, rows_only, none
|
||
|
* @type {String}
|
||
|
*/
|
||
|
this.caching = null;
|
||
|
/**
|
||
|
* A human readable comment describing the table.
|
||
|
* @type {String}
|
||
|
*/
|
||
|
this.comment = null;
|
||
|
/**
|
||
|
* Specifies the time to wait before garbage collecting tombstones (deletion markers)
|
||
|
* @type {number}
|
||
|
*/
|
||
|
this.gcGraceSeconds = 0;
|
||
|
/**
|
||
|
* Compaction strategy class used for the table.
|
||
|
* @type {String}
|
||
|
*/
|
||
|
this.compactionClass = null;
|
||
|
/**
|
||
|
* Associative-array containing the compaction options keys and values.
|
||
|
* @type {Object}
|
||
|
*/
|
||
|
this.compactionOptions = null;
|
||
|
/**
|
||
|
* Associative-array containing the compression options.
|
||
|
* @type {Object}
|
||
|
*/
|
||
|
this.compression = null;
|
||
|
/**
|
||
|
* Specifies the probability of read repairs being invoked over all replicas in the current data center.
|
||
|
* @type {number}
|
||
|
*/
|
||
|
this.localReadRepairChance = 0;
|
||
|
/**
|
||
|
* Specifies the probability with which read repairs should be invoked on non-quorum reads. The value must be
|
||
|
* between 0 and 1.
|
||
|
* @type {number}
|
||
|
*/
|
||
|
this.readRepairChance = 0;
|
||
|
/**
|
||
|
* An associative Array containing extra metadata for the table.
|
||
|
* <p>
|
||
|
* For Apache Cassandra versions prior to 3.0.0, this method always returns <code>null</code>.
|
||
|
* </p>
|
||
|
* @type {Object}
|
||
|
*/
|
||
|
this.extensions = null;
|
||
|
/**
|
||
|
* When compression is enabled, this option defines the probability
|
||
|
* with which checksums for compressed blocks are checked during reads.
|
||
|
* The default value for this options is 1.0 (always check).
|
||
|
* <p>
|
||
|
* For Apache Cassandra versions prior to 3.0.0, this method always returns <code>null</code>.
|
||
|
* </p>
|
||
|
* @type {Number|null}
|
||
|
*/
|
||
|
this.crcCheckChance = null;
|
||
|
/**
|
||
|
* Whether the populate I/O cache on flush is set on this table.
|
||
|
* @type {Boolean}
|
||
|
*/
|
||
|
this.populateCacheOnFlush = false;
|
||
|
/**
|
||
|
* Returns the default TTL for this table.
|
||
|
* @type {Number}
|
||
|
*/
|
||
|
this.defaultTtl = 0;
|
||
|
/**
|
||
|
* * Returns the speculative retry option for this table.
|
||
|
* @type {String}
|
||
|
*/
|
||
|
this.speculativeRetry = 'NONE';
|
||
|
/**
|
||
|
* Returns the minimum index interval option for this table.
|
||
|
* <p>
|
||
|
* Note: this option is available in Apache Cassandra 2.1 and above, and will return <code>null</code> for
|
||
|
* earlier versions.
|
||
|
* </p>
|
||
|
* @type {Number|null}
|
||
|
*/
|
||
|
this.minIndexInterval = 128;
|
||
|
/**
|
||
|
* Returns the maximum index interval option for this table.
|
||
|
* <p>
|
||
|
* Note: this option is available in Apache Cassandra 2.1 and above, and will return <code>null</code> for
|
||
|
* earlier versions.
|
||
|
* </p>
|
||
|
* @type {Number|null}
|
||
|
*/
|
||
|
this.maxIndexInterval = 2048;
|
||
|
/**
|
||
|
* Array describing the table columns.
|
||
|
* @type {Array}
|
||
|
*/
|
||
|
this.columns = null;
|
||
|
/**
|
||
|
* An associative Array of columns by name.
|
||
|
* @type {Object}
|
||
|
*/
|
||
|
this.columnsByName = null;
|
||
|
/**
|
||
|
* Array describing the columns that are part of the partition key.
|
||
|
* @type {Array}
|
||
|
*/
|
||
|
this.partitionKeys = [];
|
||
|
/**
|
||
|
* Array describing the columns that form the clustering key.
|
||
|
* @type {Array}
|
||
|
*/
|
||
|
this.clusteringKeys = [];
|
||
|
/**
|
||
|
* Array describing the clustering order of the columns in the same order as the clusteringKeys.
|
||
|
* @type {Array}
|
||
|
*/
|
||
|
this.clusteringOrder = [];
|
||
|
/**
|
||
|
* An associative Array containing nodesync options for this table.
|
||
|
* <p>
|
||
|
* For DSE versions prior to 6.0.0, this method always returns {@code null}. If nodesync
|
||
|
* was not explicitly configured for this table this method will also return {@code null}.
|
||
|
* </p>
|
||
|
* @type {Object}
|
||
|
*/
|
||
|
this.nodesync = null;
|
||
|
}
|
||
|
|
||
|
util.inherits(DataCollection, events.EventEmitter);
|
||
|
|
||
|
module.exports = DataCollection;
|