MCPcopy Index your code
hub / github.com/questdb/questdb / resolveParameters

Method resolveParameters

compat/src/test/nodejs-postgres/runner.js:81–164  ·  view source on GitHub ↗
(typedParameters, variables)

Source from the content-addressed store, hash-verified

79 }
80
81 resolveParameters(typedParameters, variables) {
82 const resolvedParameters = [];
83 for (const param of typedParameters) {
84 const type = param.type.toLowerCase();
85 let value = param.value;
86
87 if (typeof value === 'string') {
88 value = this.substituteVariables(value, variables);
89 }
90
91 switch (type) {
92 case 'int4':
93 case 'int8':
94 resolvedParameters.push(parseInt(value));
95 break;
96 case 'float4':
97 case 'float8':
98 resolvedParameters.push(parseFloat(value));
99 break;
100 case 'boolean':
101 value = String(value).toLowerCase().trim();
102 if (value === 'true') {
103 resolvedParameters.push(true);
104 } else if (value === 'false') {
105 resolvedParameters.push(false);
106 } else {
107 throw new Error(`Invalid boolean value: ${value}`);
108 }
109 break;
110 case 'varchar':
111 case 'char':
112 resolvedParameters.push(String(value));
113 break;
114 case 'timestamp':
115 case 'date':
116 resolvedParameters.push(value);
117 break;
118 case 'array_float8':
119 // Handle floating point arrays like {-1, 2, 3, 4, 5.42}
120 if (typeof value === 'string') {
121 // Handle empty array case "{}"
122 if (value.trim() === '{}') {
123 resolvedParameters.push([]);
124 break;
125 }
126
127 // Strip curly braces and split by comma
128 const strippedValue = value.replace(/^\{|\}$/g, '');
129 // Convert each element to float, handling null values
130 const floatArray = strippedValue.split(',').map(item => {
131 const trimmedItem = item.trim();
132 if (!trimmedItem) return undefined;
133 if (trimmedItem.toLowerCase() === 'null') return null;
134 return parseFloat(trimmedItem);
135 }).filter(item => item !== undefined); // Filter out undefined values
136 resolvedParameters.push(floatArray);
137 }
138 // If already an array, ensure all elements are floats or null

Callers 1

executeStepMethod · 0.95

Calls 9

substituteVariablesMethod · 0.95
toLowerCaseMethod · 0.80
pushMethod · 0.65
mapMethod · 0.65
joinMethod · 0.65
trimMethod · 0.45
replaceMethod · 0.45
filterMethod · 0.45
isArrayMethod · 0.45

Tested by

no test coverage detected