Repository files navigation

node-vertica Build Status

WARNING: this library is not maintained.

A pure javascript library to connect to a Vertica database. Except that it is written in CoffeeScript.

Installation

npm install vertica

Getting started

Connecting

Call the connect method with a connection options object. The following connection options are supported.

  • host: the host to connect to (default: "localhost")
  • port: the remote port to connect to (default: 5433)
  • user: the username to use for authentication
  • password: the password to use for authentication
  • database: the database to connect to. If your Vertica server only has a single database, you can leave this blank.
  • ssl: whether to encrypt the connection using SSL. The following values are supported:
    • false: no SSL
    • "optional": use SSL if the server supports it, but fall back to no SSL if not (default).
    • "required": use SSL, throw an error if the server doesn't support it.
    • "verified": use SSL, throw an error if the server doesn't support it or its SSL certificate could not be verified.
  • role: Runs a SET ROLE query to activate a role for the user immediately after connecting.
  • searchPath: Runs a SET SEARCH_PATH TO query to set the search path after connecting.
  • timezone: Runs a SET TIMEZONE TO query to set the connection's time zone after connecting.
  • initializer: a callback function that gets called after connection but before any query gets executed.
  • decoders: an object containing custom buffer decoders for query result field deserialization, see usage in custom decoders test.
  • keepAlive: Enable/disable tcp keep-alive functionality (default: false).
Vertica=require'vertica'connection=Vertica.connecthost:'localhost', user:"me", password:'secret', (err) ->throw err if err

Note: the connect will establish a single connection. A connection can only execute one query at the time. Due to the evented nature of node.js, it is possible to start a new query while another query is still running. This library implements a simple queueing system that will run queries serially.

If you want parallelism, you will need multiple connections to your server. You can set up connection pooling fairly easily using the generic-pool library. Note that transactions cannot be shared between multiple connections; you need to use the same connection for all queries in the transaction and run them in serial.

Example Create Function for generic-pool

pool=genericPool.Pool(
create: (callback) ->vertica.connect {}, (err, conn) ->callback err, conn
)

Querying (buffered)

Running a buffered query will assemble the result in memory and call the callback function when it is completed.

connection=Vertica.connect(...)
connection.query"SELECT * FROM table", (err, resultset) ->console.log err, resultset.fields, resultset.rows, resultset.status# or, identically:query=Vertica.connect(...).query"SELECT * FROM table"query.callback= (err, resultset) ->...

Querying (unbuffered)

Running an unbuffered query will immediately emit incoming data as events and will not store the result in memory. Recommended for handling huge resultsets.

connection=Vertica.connect(...)
query=connection.query"SELECT * FROM table"# 'fields' is emitted once.query.on'fields', (fields) ->console.log("Fields:", fields)
# 'row' is emitted 0..* times, once for every row in the resultset.query.on'row', (row) ->console.log(row)
# 'end' is emitted once.query.on'end', (status) ->console.log("Finished!", status)
# If 'error' is emitted, no more events will follow.# If no event handler is implemented, an exceptions gets thrown instead.query.on'error', (err) ->console.log("Uh oh!", err)

About

  • MIT licensed (see LICENSE).
  • Written by Willem van Bergen for Shopify Inc.
  • Pull requests are gladly accepted. Please modify the CoffeeScript source files in the /src folder, and not the compiled JavaScript output files.

About

Pure javascript Vertica database client. Except it is written in CoffeeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

node-vertica Build Status

WARNING: this library is not maintained.

A pure javascript library to connect to a Vertica database. Except that it is written in CoffeeScript.

Installation

npm install vertica

Getting started

Connecting

Call the connect method with a connection options object. The following connection options are supported.

  • host: the host to connect to (default: "localhost")
  • port: the remote port to connect to (default: 5433)
  • user: the username to use for authentication
  • password: the password to use for authentication
  • database: the database to connect to. If your Vertica server only has a single database, you can leave this blank.
  • ssl: whether to encrypt the connection using SSL. The following values are supported:
    • false: no SSL
    • "optional": use SSL if the server supports it, but fall back to no SSL if not (default).
    • "required": use SSL, throw an error if the server doesn't support it.
    • "verified": use SSL, throw an error if the server doesn't support it or its SSL certificate could not be verified.
  • role: Runs a SET ROLE query to activate a role for the user immediately after connecting.
  • searchPath: Runs a SET SEARCH_PATH TO query to set the search path after connecting.
  • timezone: Runs a SET TIMEZONE TO query to set the connection's time zone after connecting.
  • initializer: a callback function that gets called after connection but before any query gets executed.
  • decoders: an object containing custom buffer decoders for query result field deserialization, see usage in custom decoders test.
  • keepAlive: Enable/disable tcp keep-alive functionality (default: false).
Vertica=require'vertica'connection=Vertica.connecthost:'localhost', user:"me", password:'secret', (err) ->throw err if err

Note: the connect will establish a single connection. A connection can only execute one query at the time. Due to the evented nature of node.js, it is possible to start a new query while another query is still running. This library implements a simple queueing system that will run queries serially.

If you want parallelism, you will need multiple connections to your server. You can set up connection pooling fairly easily using the generic-pool library. Note that transactions cannot be shared between multiple connections; you need to use the same connection for all queries in the transaction and run them in serial.

Example Create Function for generic-pool

pool=genericPool.Pool(
create: (callback) ->vertica.connect {}, (err, conn) ->callback err, conn
)

Querying (buffered)

Running a buffered query will assemble the result in memory and call the callback function when it is completed.

connection=Vertica.connect(...)
connection.query"SELECT * FROM table", (err, resultset) ->console.log err, resultset.fields, resultset.rows, resultset.status# or, identically:query=Vertica.connect(...).query"SELECT * FROM table"query.callback= (err, resultset) ->...

Querying (unbuffered)

Running an unbuffered query will immediately emit incoming data as events and will not store the result in memory. Recommended for handling huge resultsets.

connection=Vertica.connect(...)
query=connection.query"SELECT * FROM table"# 'fields' is emitted once.query.on'fields', (fields) ->console.log("Fields:", fields)
# 'row' is emitted 0..* times, once for every row in the resultset.query.on'row', (row) ->console.log(row)
# 'end' is emitted once.query.on'end', (status) ->console.log("Finished!", status)
# If 'error' is emitted, no more events will follow.# If no event handler is implemented, an exceptions gets thrown instead.query.on'error', (err) ->console.log("Uh oh!", err)

About

  • MIT licensed (see LICENSE).
  • Written by Willem van Bergen for Shopify Inc.
  • Pull requests are gladly accepted. Please modify the CoffeeScript source files in the /src folder, and not the compiled JavaScript output files.

About

Pure javascript Vertica database client. Except it is written in CoffeeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

node-vertica Build Status

WARNING: this library is not maintained.

A pure javascript library to connect to a Vertica database. Except that it is written in CoffeeScript.

Installation

npm install vertica

Getting started

Connecting

Call the connect method with a connection options object. The following connection options are supported.

  • host: the host to connect to (default: "localhost")
  • port: the remote port to connect to (default: 5433)
  • user: the username to use for authentication
  • password: the password to use for authentication
  • database: the database to connect to. If your Vertica server only has a single database, you can leave this blank.
  • ssl: whether to encrypt the connection using SSL. The following values are supported:
    • false: no SSL
    • "optional": use SSL if the server supports it, but fall back to no SSL if not (default).
    • "required": use SSL, throw an error if the server doesn't support it.
    • "verified": use SSL, throw an error if the server doesn't support it or its SSL certificate could not be verified.
  • role: Runs a SET ROLE query to activate a role for the user immediately after connecting.
  • searchPath: Runs a SET SEARCH_PATH TO query to set the search path after connecting.
  • timezone: Runs a SET TIMEZONE TO query to set the connection's time zone after connecting.
  • initializer: a callback function that gets called after connection but before any query gets executed.
  • decoders: an object containing custom buffer decoders for query result field deserialization, see usage in custom decoders test.
  • keepAlive: Enable/disable tcp keep-alive functionality (default: false).
Vertica=require'vertica'connection=Vertica.connecthost:'localhost', user:"me", password:'secret', (err) ->throw err if err

Note: the connect will establish a single connection. A connection can only execute one query at the time. Due to the evented nature of node.js, it is possible to start a new query while another query is still running. This library implements a simple queueing system that will run queries serially.

If you want parallelism, you will need multiple connections to your server. You can set up connection pooling fairly easily using the generic-pool library. Note that transactions cannot be shared between multiple connections; you need to use the same connection for all queries in the transaction and run them in serial.

Example Create Function for generic-pool

pool=genericPool.Pool(
create: (callback) ->vertica.connect {}, (err, conn) ->callback err, conn
)

Querying (buffered)

Running a buffered query will assemble the result in memory and call the callback function when it is completed.

connection=Vertica.connect(...)
connection.query"SELECT * FROM table", (err, resultset) ->console.log err, resultset.fields, resultset.rows, resultset.status# or, identically:query=Vertica.connect(...).query"SELECT * FROM table"query.callback= (err, resultset) ->...

Querying (unbuffered)

Running an unbuffered query will immediately emit incoming data as events and will not store the result in memory. Recommended for handling huge resultsets.

connection=Vertica.connect(...)
query=connection.query"SELECT * FROM table"# 'fields' is emitted once.query.on'fields', (fields) ->console.log("Fields:", fields)
# 'row' is emitted 0..* times, once for every row in the resultset.query.on'row', (row) ->console.log(row)
# 'end' is emitted once.query.on'end', (status) ->console.log("Finished!", status)
# If 'error' is emitted, no more events will follow.# If no event handler is implemented, an exceptions gets thrown instead.query.on'error', (err) ->console.log("Uh oh!", err)

About

  • MIT licensed (see LICENSE).
  • Written by Willem van Bergen for Shopify Inc.
  • Pull requests are gladly accepted. Please modify the CoffeeScript source files in the /src folder, and not the compiled JavaScript output files.

About

Pure javascript Vertica database client. Except it is written in CoffeeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

node-vertica Build Status

WARNING: this library is not maintained.

A pure javascript library to connect to a Vertica database. Except that it is written in CoffeeScript.

Installation

npm install vertica

Getting started

Connecting

Call the connect method with a connection options object. The following connection options are supported.

  • host: the host to connect to (default: "localhost")
  • port: the remote port to connect to (default: 5433)
  • user: the username to use for authentication
  • password: the password to use for authentication
  • database: the database to connect to. If your Vertica server only has a single database, you can leave this blank.
  • ssl: whether to encrypt the connection using SSL. The following values are supported:
    • false: no SSL
    • "optional": use SSL if the server supports it, but fall back to no SSL if not (default).
    • "required": use SSL, throw an error if the server doesn't support it.
    • "verified": use SSL, throw an error if the server doesn't support it or its SSL certificate could not be verified.
  • role: Runs a SET ROLE query to activate a role for the user immediately after connecting.
  • searchPath: Runs a SET SEARCH_PATH TO query to set the search path after connecting.
  • timezone: Runs a SET TIMEZONE TO query to set the connection's time zone after connecting.
  • initializer: a callback function that gets called after connection but before any query gets executed.
  • decoders: an object containing custom buffer decoders for query result field deserialization, see usage in custom decoders test.
  • keepAlive: Enable/disable tcp keep-alive functionality (default: false).
Vertica=require'vertica'connection=Vertica.connecthost:'localhost', user:"me", password:'secret', (err) ->throw err if err

Note: the connect will establish a single connection. A connection can only execute one query at the time. Due to the evented nature of node.js, it is possible to start a new query while another query is still running. This library implements a simple queueing system that will run queries serially.

If you want parallelism, you will need multiple connections to your server. You can set up connection pooling fairly easily using the generic-pool library. Note that transactions cannot be shared between multiple connections; you need to use the same connection for all queries in the transaction and run them in serial.

Example Create Function for generic-pool

pool=genericPool.Pool(
create: (callback) ->vertica.connect {}, (err, conn) ->callback err, conn
)

Querying (buffered)

Running a buffered query will assemble the result in memory and call the callback function when it is completed.

connection=Vertica.connect(...)
connection.query"SELECT * FROM table", (err, resultset) ->console.log err, resultset.fields, resultset.rows, resultset.status# or, identically:query=Vertica.connect(...).query"SELECT * FROM table"query.callback= (err, resultset) ->...

Querying (unbuffered)

Running an unbuffered query will immediately emit incoming data as events and will not store the result in memory. Recommended for handling huge resultsets.

connection=Vertica.connect(...)
query=connection.query"SELECT * FROM table"# 'fields' is emitted once.query.on'fields', (fields) ->console.log("Fields:", fields)
# 'row' is emitted 0..* times, once for every row in the resultset.query.on'row', (row) ->console.log(row)
# 'end' is emitted once.query.on'end', (status) ->console.log("Finished!", status)
# If 'error' is emitted, no more events will follow.# If no event handler is implemented, an exceptions gets thrown instead.query.on'error', (err) ->console.log("Uh oh!", err)

About

  • MIT licensed (see LICENSE).
  • Written by Willem van Bergen for Shopify Inc.
  • Pull requests are gladly accepted. Please modify the CoffeeScript source files in the /src folder, and not the compiled JavaScript output files.

About

Pure javascript Vertica database client. Except it is written in CoffeeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

node-vertica Build Status

WARNING: this library is not maintained.

A pure javascript library to connect to a Vertica database. Except that it is written in CoffeeScript.

Installation

npm install vertica

Getting started

Connecting

Call the connect method with a connection options object. The following connection options are supported.

  • host: the host to connect to (default: "localhost")
  • port: the remote port to connect to (default: 5433)
  • user: the username to use for authentication
  • password: the password to use for authentication
  • database: the database to connect to. If your Vertica server only has a single database, you can leave this blank.
  • ssl: whether to encrypt the connection using SSL. The following values are supported:
    • false: no SSL
    • "optional": use SSL if the server supports it, but fall back to no SSL if not (default).
    • "required": use SSL, throw an error if the server doesn't support it.
    • "verified": use SSL, throw an error if the server doesn't support it or its SSL certificate could not be verified.
  • role: Runs a SET ROLE query to activate a role for the user immediately after connecting.
  • searchPath: Runs a SET SEARCH_PATH TO query to set the search path after connecting.
  • timezone: Runs a SET TIMEZONE TO query to set the connection's time zone after connecting.
  • initializer: a callback function that gets called after connection but before any query gets executed.
  • decoders: an object containing custom buffer decoders for query result field deserialization, see usage in custom decoders test.
  • keepAlive: Enable/disable tcp keep-alive functionality (default: false).
Vertica=require'vertica'connection=Vertica.connecthost:'localhost', user:"me", password:'secret', (err) ->throw err if err

Note: the connect will establish a single connection. A connection can only execute one query at the time. Due to the evented nature of node.js, it is possible to start a new query while another query is still running. This library implements a simple queueing system that will run queries serially.

If you want parallelism, you will need multiple connections to your server. You can set up connection pooling fairly easily using the generic-pool library. Note that transactions cannot be shared between multiple connections; you need to use the same connection for all queries in the transaction and run them in serial.

Example Create Function for generic-pool

pool=genericPool.Pool(
create: (callback) ->vertica.connect {}, (err, conn) ->callback err, conn
)

Querying (buffered)

Running a buffered query will assemble the result in memory and call the callback function when it is completed.

connection=Vertica.connect(...)
connection.query"SELECT * FROM table", (err, resultset) ->console.log err, resultset.fields, resultset.rows, resultset.status# or, identically:query=Vertica.connect(...).query"SELECT * FROM table"query.callback= (err, resultset) ->...

Querying (unbuffered)

Running an unbuffered query will immediately emit incoming data as events and will not store the result in memory. Recommended for handling huge resultsets.

connection=Vertica.connect(...)
query=connection.query"SELECT * FROM table"# 'fields' is emitted once.query.on'fields', (fields) ->console.log("Fields:", fields)
# 'row' is emitted 0..* times, once for every row in the resultset.query.on'row', (row) ->console.log(row)
# 'end' is emitted once.query.on'end', (status) ->console.log("Finished!", status)
# If 'error' is emitted, no more events will follow.# If no event handler is implemented, an exceptions gets thrown instead.query.on'error', (err) ->console.log("Uh oh!", err)

About

  • MIT licensed (see LICENSE).
  • Written by Willem van Bergen for Shopify Inc.
  • Pull requests are gladly accepted. Please modify the CoffeeScript source files in the /src folder, and not the compiled JavaScript output files.

About

Pure javascript Vertica database client. Except it is written in CoffeeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

node-vertica Build Status

WARNING: this library is not maintained.

A pure javascript library to connect to a Vertica database. Except that it is written in CoffeeScript.

Installation

npm install vertica

Getting started

Connecting

Call the connect method with a connection options object. The following connection options are supported.

  • host: the host to connect to (default: "localhost")
  • port: the remote port to connect to (default: 5433)
  • user: the username to use for authentication
  • password: the password to use for authentication
  • database: the database to connect to. If your Vertica server only has a single database, you can leave this blank.
  • ssl: whether to encrypt the connection using SSL. The following values are supported:
    • false: no SSL
    • "optional": use SSL if the server supports it, but fall back to no SSL if not (default).
    • "required": use SSL, throw an error if the server doesn't support it.
    • "verified": use SSL, throw an error if the server doesn't support it or its SSL certificate could not be verified.
  • role: Runs a SET ROLE query to activate a role for the user immediately after connecting.
  • searchPath: Runs a SET SEARCH_PATH TO query to set the search path after connecting.
  • timezone: Runs a SET TIMEZONE TO query to set the connection's time zone after connecting.
  • initializer: a callback function that gets called after connection but before any query gets executed.
  • decoders: an object containing custom buffer decoders for query result field deserialization, see usage in custom decoders test.
  • keepAlive: Enable/disable tcp keep-alive functionality (default: false).
Vertica=require'vertica'connection=Vertica.connecthost:'localhost', user:"me", password:'secret', (err) ->throw err if err

Note: the connect will establish a single connection. A connection can only execute one query at the time. Due to the evented nature of node.js, it is possible to start a new query while another query is still running. This library implements a simple queueing system that will run queries serially.

If you want parallelism, you will need multiple connections to your server. You can set up connection pooling fairly easily using the generic-pool library. Note that transactions cannot be shared between multiple connections; you need to use the same connection for all queries in the transaction and run them in serial.

Example Create Function for generic-pool

pool=genericPool.Pool(
create: (callback) ->vertica.connect {}, (err, conn) ->callback err, conn
)

Querying (buffered)

Running a buffered query will assemble the result in memory and call the callback function when it is completed.

connection=Vertica.connect(...)
connection.query"SELECT * FROM table", (err, resultset) ->console.log err, resultset.fields, resultset.rows, resultset.status# or, identically:query=Vertica.connect(...).query"SELECT * FROM table"query.callback= (err, resultset) ->...

Querying (unbuffered)

Running an unbuffered query will immediately emit incoming data as events and will not store the result in memory. Recommended for handling huge resultsets.

connection=Vertica.connect(...)
query=connection.query"SELECT * FROM table"# 'fields' is emitted once.query.on'fields', (fields) ->console.log("Fields:", fields)
# 'row' is emitted 0..* times, once for every row in the resultset.query.on'row', (row) ->console.log(row)
# 'end' is emitted once.query.on'end', (status) ->console.log("Finished!", status)
# If 'error' is emitted, no more events will follow.# If no event handler is implemented, an exceptions gets thrown instead.query.on'error', (err) ->console.log("Uh oh!", err)

About

  • MIT licensed (see LICENSE).
  • Written by Willem van Bergen for Shopify Inc.
  • Pull requests are gladly accepted. Please modify the CoffeeScript source files in the /src folder, and not the compiled JavaScript output files.

About

Pure javascript Vertica database client. Except it is written in CoffeeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

node-vertica Build Status

WARNING: this library is not maintained.

A pure javascript library to connect to a Vertica database. Except that it is written in CoffeeScript.

Installation

npm install vertica

Getting started

Connecting

Call the connect method with a connection options object. The following connection options are supported.

  • host: the host to connect to (default: "localhost")
  • port: the remote port to connect to (default: 5433)
  • user: the username to use for authentication
  • password: the password to use for authentication
  • database: the database to connect to. If your Vertica server only has a single database, you can leave this blank.
  • ssl: whether to encrypt the connection using SSL. The following values are supported:
    • false: no SSL
    • "optional": use SSL if the server supports it, but fall back to no SSL if not (default).
    • "required": use SSL, throw an error if the server doesn't support it.
    • "verified": use SSL, throw an error if the server doesn't support it or its SSL certificate could not be verified.
  • role: Runs a SET ROLE query to activate a role for the user immediately after connecting.
  • searchPath: Runs a SET SEARCH_PATH TO query to set the search path after connecting.
  • timezone: Runs a SET TIMEZONE TO query to set the connection's time zone after connecting.
  • initializer: a callback function that gets called after connection but before any query gets executed.
  • decoders: an object containing custom buffer decoders for query result field deserialization, see usage in custom decoders test.
  • keepAlive: Enable/disable tcp keep-alive functionality (default: false).
Vertica=require'vertica'connection=Vertica.connecthost:'localhost', user:"me", password:'secret', (err) ->throw err if err

Note: the connect will establish a single connection. A connection can only execute one query at the time. Due to the evented nature of node.js, it is possible to start a new query while another query is still running. This library implements a simple queueing system that will run queries serially.

If you want parallelism, you will need multiple connections to your server. You can set up connection pooling fairly easily using the generic-pool library. Note that transactions cannot be shared between multiple connections; you need to use the same connection for all queries in the transaction and run them in serial.

Example Create Function for generic-pool

pool=genericPool.Pool(
create: (callback) ->vertica.connect {}, (err, conn) ->callback err, conn
)

Querying (buffered)

Running a buffered query will assemble the result in memory and call the callback function when it is completed.

connection=Vertica.connect(...)
connection.query"SELECT * FROM table", (err, resultset) ->console.log err, resultset.fields, resultset.rows, resultset.status# or, identically:query=Vertica.connect(...).query"SELECT * FROM table"query.callback= (err, resultset) ->...

Querying (unbuffered)

Running an unbuffered query will immediately emit incoming data as events and will not store the result in memory. Recommended for handling huge resultsets.

connection=Vertica.connect(...)
query=connection.query"SELECT * FROM table"# 'fields' is emitted once.query.on'fields', (fields) ->console.log("Fields:", fields)
# 'row' is emitted 0..* times, once for every row in the resultset.query.on'row', (row) ->console.log(row)
# 'end' is emitted once.query.on'end', (status) ->console.log("Finished!", status)
# If 'error' is emitted, no more events will follow.# If no event handler is implemented, an exceptions gets thrown instead.query.on'error', (err) ->console.log("Uh oh!", err)

About

  • MIT licensed (see LICENSE).
  • Written by Willem van Bergen for Shopify Inc.
  • Pull requests are gladly accepted. Please modify the CoffeeScript source files in the /src folder, and not the compiled JavaScript output files.

About

Pure javascript Vertica database client. Except it is written in CoffeeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

node-vertica Build Status

WARNING: this library is not maintained.

A pure javascript library to connect to a Vertica database. Except that it is written in CoffeeScript.

Installation

npm install vertica

Getting started

Connecting

Call the connect method with a connection options object. The following connection options are supported.

  • host: the host to connect to (default: "localhost")
  • port: the remote port to connect to (default: 5433)
  • user: the username to use for authentication
  • password: the password to use for authentication
  • database: the database to connect to. If your Vertica server only has a single database, you can leave this blank.
  • ssl: whether to encrypt the connection using SSL. The following values are supported:
    • false: no SSL
    • "optional": use SSL if the server supports it, but fall back to no SSL if not (default).
    • "required": use SSL, throw an error if the server doesn't support it.
    • "verified": use SSL, throw an error if the server doesn't support it or its SSL certificate could not be verified.
  • role: Runs a SET ROLE query to activate a role for the user immediately after connecting.
  • searchPath: Runs a SET SEARCH_PATH TO query to set the search path after connecting.
  • timezone: Runs a SET TIMEZONE TO query to set the connection's time zone after connecting.
  • initializer: a callback function that gets called after connection but before any query gets executed.
  • decoders: an object containing custom buffer decoders for query result field deserialization, see usage in custom decoders test.
  • keepAlive: Enable/disable tcp keep-alive functionality (default: false).
Vertica=require'vertica'connection=Vertica.connecthost:'localhost', user:"me", password:'secret', (err) ->throw err if err

Note: the connect will establish a single connection. A connection can only execute one query at the time. Due to the evented nature of node.js, it is possible to start a new query while another query is still running. This library implements a simple queueing system that will run queries serially.

If you want parallelism, you will need multiple connections to your server. You can set up connection pooling fairly easily using the generic-pool library. Note that transactions cannot be shared between multiple connections; you need to use the same connection for all queries in the transaction and run them in serial.

Example Create Function for generic-pool

pool=genericPool.Pool(
create: (callback) ->vertica.connect {}, (err, conn) ->callback err, conn
)

Querying (buffered)

Running a buffered query will assemble the result in memory and call the callback function when it is completed.

connection=Vertica.connect(...)
connection.query"SELECT * FROM table", (err, resultset) ->console.log err, resultset.fields, resultset.rows, resultset.status# or, identically:query=Vertica.connect(...).query"SELECT * FROM table"query.callback= (err, resultset) ->...

Querying (unbuffered)

Running an unbuffered query will immediately emit incoming data as events and will not store the result in memory. Recommended for handling huge resultsets.

connection=Vertica.connect(...)
query=connection.query"SELECT * FROM table"# 'fields' is emitted once.query.on'fields', (fields) ->console.log("Fields:", fields)
# 'row' is emitted 0..* times, once for every row in the resultset.query.on'row', (row) ->console.log(row)
# 'end' is emitted once.query.on'end', (status) ->console.log("Finished!", status)
# If 'error' is emitted, no more events will follow.# If no event handler is implemented, an exceptions gets thrown instead.query.on'error', (err) ->console.log("Uh oh!", err)

About

  • MIT licensed (see LICENSE).
  • Written by Willem van Bergen for Shopify Inc.
  • Pull requests are gladly accepted. Please modify the CoffeeScript source files in the /src folder, and not the compiled JavaScript output files.

About

Pure javascript Vertica database client. Except it is written in CoffeeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages