
Security News
MCP Community Begins Work on Official MCP Metaregistry
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
github.com/allam76/sqlite3createtableparser
:scroll: Advanced PRAGMA table_info through DDL parsing
A parser for sqlite create table sql statements.
SQLite is a very powerful software but it lacks an easy way to extract complete information about table and columns constraints. The built-in sql pragma:
PRAGMA schema.table_info(table-name);
PRAGMA foreign_key_list(table-name);
provide incomplete information and a manual parsing is required in order to extract more useful information.
CREATE TABLE syntax diagrams can be found on the official sqlite website.
package main
import "github.com/lempiy/Sqlite3CreateTableParser/parser"
//some fancy DDL
const ddl = `
CREATE TABLE contact_groups (
contact_id integer,
group_id integer,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id) REFERENCES contacts (contact_id)
ON DELETE CASCADE ON UPDATE NO ACTION,
FOREIGN KEY (group_id) REFERENCES groups (group_id)
ON DELETE CASCADE ON UPDATE NO ACTION
);
`
func main() {
table, errCode := parser.ParseTable(sql, 0)
if errCode != parser.ERROR_NONE {
panic("Error during parsing sql")
}
// do stuff with received data
fmt.Printf("%+v\n", table)
}
type Table struct {
Name string
Schema string
IsTemporary bool
IsIfNotExists bool
IsWithoutRowid bool
NumColumns int
Columns []Column
NumConstraint int
Constraints []TableConstraint
}
type Column struct {
Name string
Type string
Length string
ConstraintName string
IsPrimaryKey bool
IsAutoincrement bool
IsNotnull bool
IsUnique bool
PkOrder OrderClause
PkConflictClause ConflictClause
NotNullConflictClause ConflictClause
UniqueConflictClause ConflictClause
CheckExpr string
DefaultExpr string
CollateName string
ForeignKeyClause *ForeignKey
}
type TableConstraint struct {
Type ConstraintType
Name string
NumIndexed int
IndexedColumns []IdxColumn
ConflictClause ConflictClause
CheckExpr string
ForeignKeyNum int
ForeignKeyName []string
ForeignKeyClause *ForeignKey
}
type ForeignKey struct {
Table string
NumColumns int
ColumnName []string
OnDelete FkAction
OnUpdate FkAction
Match string
Deferrable FkDefType
}
type IdxColumn struct {
Name string
CollateName string
Order OrderClause
}
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
Research
Security News
Socket uncovers an npm Trojan stealing crypto wallets and BullX credentials via obfuscated code and Telegram exfiltration.
Research
Security News
Malicious npm packages posing as developer tools target macOS Cursor IDE users, stealing credentials and modifying files to gain persistent backdoor access.