Skip to content

Commit 73cd6c1

Browse files
issue 71
1 parent 70dec33 commit 73cd6c1

File tree

11 files changed

+2238
-2159
lines changed

11 files changed

+2238
-2159
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ Error diagnostic fixes
5454

5555
## [1.2.12] - 2024-4-2
5656

57+
#71
58+
59+
## [1.2.14] - 2024-9-22
60+
5761
Misindented error diagnostics, one more time
5862
Table and column directive syntax check
5963

dist/quick-erd.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ class f {
361361
});
362362
}
363363
}
364-
const E = "1.2.13", b = {
364+
const E = "1.2.14", b = {
365365
Diagram: f,
366366
version: E
367367
};

dist/quick-erd.umd.cjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

dist/quick-sql.js

Lines changed: 1966 additions & 1945 deletions
Large diffs are not rendered by default.

dist/quick-sql.umd.cjs

Lines changed: 207 additions & 206 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@oracle/quicksql",
3-
"version": "1.2.13",
3+
"version": "1.2.14",
44
"description": "Quick SQL to DDL and ERD translator",
55
"main": "./dist/quick-sql.umd.cjs",
66
"module": "./dist/quick-sql.js",

src/tree.js

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ let tree = (function(){
1010
let tab= ' ';
1111
const stringTypes = ['string', 'varchar2', 'varchar', 'vc' , 'char'];
1212
const boolTypes = ['yn', 'boolean', 'bool', ];
13+
const vectTypes = ['vect', 'vector', ];
1314
let datatypes = [
1415
'integer',
1516
'number', 'num',
1617
'int',
17-
'num',
1818
'blob', 'clob',
1919
'json',
2020
'file',
@@ -26,6 +26,7 @@ let tree = (function(){
2626
];
2727
datatypes = datatypes.concat(stringTypes);
2828
datatypes = datatypes.concat(boolTypes);
29+
datatypes = datatypes.concat(vectTypes);
2930

3031
/**
3132
* Node in QSQL tree defining a Table, a Column, a View, or an Option
@@ -237,7 +238,9 @@ let tree = (function(){
237238

238239

239240
for( let i = 0; i < datatypes.length; i++ ) {
240-
const pos = this.indexOf(datatypes[i]);
241+
let pos = this.indexOf(datatypes[i]);
242+
if( pos < 0 )
243+
pos = this.indexOf(datatypes[i], true);
241244
if( 0 < pos && pos < nameTo ) {
242245
nameTo = pos;
243246
return this.sugarcoatName(nameFrom, nameTo);
@@ -321,6 +324,15 @@ let tree = (function(){
321324
ret = 'varchar2';
322325
}
323326

327+
const vector = this.vectorType('vector');
328+
if( vector != null )
329+
ret = vector;
330+
else {
331+
const vect = this.vectorType('vect');
332+
if( vect != null )
333+
ret = vect;
334+
}
335+
324336
const parent_child = concatNames(parent.parseName(),'_',this.parseName());
325337

326338
const isDefault = this.isOption('default');
@@ -442,6 +454,31 @@ let tree = (function(){
442454
return ret;
443455
};
444456

457+
this.vectorType = function( mnemonics ) {
458+
const vectPos = this.indexOf(mnemonics, true);
459+
const src = this.src;
460+
if( 0 < vectPos ) {
461+
var start = src[vectPos].begin;
462+
var end = src[vectPos].end;
463+
let dim = src[vectPos].value.substring(mnemonics.length);
464+
if( '' == dim ) {
465+
let oParenPos = this.indexOf('(');
466+
if( oParenPos == dim + 1 ) {
467+
dim = src[dim+2].value;
468+
}
469+
}
470+
let len = '*';
471+
if( '' != dim ) {
472+
let factor = 1;
473+
if( dim.endsWith('k') )
474+
factor = 1024;
475+
dim = dim.substring(0,dim.length-1);
476+
len = parseInt(dim)*factor;
477+
}
478+
return 'vector('+len+',*,*)';
479+
}
480+
return null;
481+
}
445482

446483
this.genConstraint = function ( optQuote ) {
447484
let ret = '';

test/bugs/71.qsql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
data_feed_vectors
2+
e1 vect10k
3+
EMBED_VECTOR vect
4+
EMBED vector
5+
E2 vector123
6+
7+
8+
9+
# genpk: false

test/bugs/71.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
create table data_feed_vectors (
2+
e1 vector(10240,*,*),
3+
EMBED_VECTOR vector(*,*,*),
4+
EMBED vector(*,*,*),
5+
E2 vector(12,*,*));
6+

test/single_test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ try {
99
//file = '//experimental/food_product.json';
1010
file = '//erd/Bug35814250/1-3.qsql';
1111
file = '//apex/project_management.quicksql';
12-
file = '//bugs/84.qsql';
12+
file = '//bugs/71.qsql';
1313

1414
let args = process.argv.slice(2);
1515
if( 0 < args.length )

0 commit comments

Comments
 (0)